Messages in this thread | | | Date | Wed, 12 Feb 2020 09:05:22 +0100 | From | Peter Zijlstra <> | Subject | Re: [PATCH v2] tracing/perf: Move rcu_irq_enter/exit_irqson() to perf trace point hook |
| |
On Tue, Feb 11, 2020 at 10:54:57AM -0800, Paul E. McKenney wrote: > On Tue, Feb 11, 2020 at 06:32:13PM +0100, Peter Zijlstra wrote: > > On Tue, Feb 11, 2020 at 06:29:52PM +0100, Peter Zijlstra wrote: > > > +#define trace_rcu_enter() \ > > > +({ \ > > > + unsigned long state = 0; \ > > > + if (!rcu_is_watching()) { \ > > > > Also, afaict rcu_is_watching() itself needs more love, the functio has > > notrace, but calls other stuff that does not have notrace or inline. > > Good catch! Like this? > > Thanx, Paul > > ------------------------------------------------------------------------ > > diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c > index 1f5fdf7..51616e72 100644 > --- a/kernel/rcu/tree.c > +++ b/kernel/rcu/tree.c > @@ -295,7 +295,7 @@ static void rcu_dynticks_eqs_online(void) > * > * No ordering, as we are sampling CPU-local information. > */ > -static bool rcu_dynticks_curr_cpu_in_eqs(void) > +static bool notrace rcu_dynticks_curr_cpu_in_eqs(void)
Right, except that, given the size of the thing, I'd opt for 'inline' over 'notrace'.
| |