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.