On Fri, Feb 21, 2020 at 02:34:32PM +0100, Peter Zijlstra wrote: > Effectively revert commit 865e63b04e9b2 ("tracing: Add back in > rcu_irq_enter/exit_irqson() for rcuidle tracepoints") now that we've > taught perf how to deal with not having an RCU context provided. > > Signed-off-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx> > Reviewed-by: Steven Rostedt (VMware) <rostedt@xxxxxxxxxxx> > --- > include/linux/tracepoint.h | 8 ++------ > 1 file changed, 2 insertions(+), 6 deletions(-) > > --- a/include/linux/tracepoint.h > +++ b/include/linux/tracepoint.h > @@ -179,10 +179,8 @@ static inline struct tracepoint *tracepo > * For rcuidle callers, use srcu since sched-rcu \ > * doesn't work from the idle path. \ > */ \ > - if (rcuidle) { \ > + if (rcuidle) \ > __idx = srcu_read_lock_notrace(&tracepoint_srcu);\ > - rcu_irq_enter_irqsave(); \ > - } \ > \ > it_func_ptr = rcu_dereference_raw((tp)->funcs); \ > \ > @@ -194,10 +192,8 @@ static inline struct tracepoint *tracepo > } while ((++it_func_ptr)->func); \ > } \ > \ > - if (rcuidle) { \ > - rcu_irq_exit_irqsave(); \ > + if (rcuidle) \ > srcu_read_unlock_notrace(&tracepoint_srcu, __idx);\ > - } \ > \ > preempt_enable_notrace(); \ > } while (0) So what happens when BPF registers for these tracepoints? BPF very much wants RCU on AFAIU.