Re: [PATCH v2 3/9] rcu,tracing: Create trace_rcu_{enter,exit}()

From: Joel Fernandes
Date: Thu Feb 13 2020 - 13:39:18 EST


On Thu, Feb 13, 2020 at 09:28:14AM +0100, Peter Zijlstra wrote:
> On Wed, Feb 12, 2020 at 06:27:02PM -0500, Joel Fernandes wrote:
> > On Wed, Feb 12, 2020 at 10:01:42PM +0100, Peter Zijlstra wrote:
>
> > > +#define trace_rcu_enter() \
> > > +({ \
> > > + unsigned long state = 0; \
> > > + if (!rcu_is_watching()) { \
> > > + if (in_nmi()) { \
> > > + state = __TR_NMI; \
> > > + rcu_nmi_enter(); \
> > > + } else { \
> > > + state = __TR_IRQ; \
> > > + rcu_irq_enter_irqsave(); \
> >
> > Since rcu_irq_enter_irqsave can be called from a tracer context, should those
> > be marked with notrace as well? AFAICS, there's no notrace marking on them.
>
> It should work, these functions are re-entrant (as are IRQs / NMIs) and
> Steve wants to be able to trace RCU itself.

Hoping there are no recursion scenarios possible, but that sounds good to me. thanks,

- Joel