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

Peter Zijlstra
2020-02-13T08:28:43Z

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.