Re: [PATCH tip/core/rcu 06/19] rcu: Add warning to detect half-interrupts

From: Joel Fernandes
Date: Thu Mar 14 2019 - 08:32:04 EST


On Wed, Mar 13, 2019 at 11:07:30AM -0700, Paul E. McKenney wrote:
> On Wed, Mar 13, 2019 at 12:51:25PM -0400, Steven Rostedt wrote:
> > On Wed, 13 Mar 2019 08:51:55 -0700
> > "Paul E. McKenney" <paulmck@xxxxxxxxxxxxx> wrote:
> >
> > > Does this mean that there is a better approach that Joel's suggestion?
> > > I believe he would end up with something like this:
> > >
> > > WARN_ON_ONCE(IS_ENABLED(CONFIG_PROVE_RCU) && !in_irq());
> > >
> > > It would be nice if there is something like this:
> > >
> > > lockdep_assert_in_irq_handler();
> > >
> > > But I haven't seen this. (Not that I have looked particularly hard for
> > > such a thing, mind you!)
> >
> > That would be trivial to implement:
> >
> > #define lockdep_assert_in_irq() do {
> > WARN_ON(debug_locks && !current->hardirq_context);
> > } while (0)
>
> Looks good to me!
>
> Joel, does this work for you? I could be wrong, but I suspect that Steve
> is suggesting that you incorporate the above into your eventual patch. ;-)

Oh thanks for pointing that out. Yes it does work for me. I agree with the
lockdep API addition and others could benefit from it too. I will incorporate
the lockdep API addition into the RCU patch, but let me know if I should
rather split it.

thanks!

- Joel