Messages in this thread | | | Date | Mon, 21 Nov 2016 13:24:38 -0500 | From | Steven Rostedt <> | Subject | Re: [BUG] msr-trace.h:42 suspicious rcu_dereference_check() usage! |
| |
Paul,
On Mon, 21 Nov 2016 12:55:01 -0500 Steven Rostedt <rostedt@goodmis.org> wrote:
> On Mon, 21 Nov 2016 18:18:53 +0100 > Peter Zijlstra <peterz@infradead.org> wrote: > > > Its not ftrace as such though, its RCU, ftrace simply uses RCU to avoid > > locking, as one does. > > Just to be clear, as ftrace in the kernel mostly represents function > tracing, which doesn't use RCU. This is a tracepoint feature. > > > > > Biggest objection would be that the rcu_irq_enter_irqson() thing does > > POPF and rcu_irq_exit_irqson() does again. So wrapping every tracepoint > > with that is quite a few cycles. > > Agree. Even though this ends up being a whack-a-mole(TM) fix, I'm not > concerned enough to put a heavy weight rcu idle code in for all > tracepoints. > > Although, what about a percpu flag that can be checked in the > tracepoint code to see if it should enable RCU or not? > > Hmm, I wonder if "rcu_is_watching()" is light enough to have in all > tracepoints?
Is it possible to make rcu_is_watching() an inlined call to prevent the overhead of doing a function call? This way we could use this in the fast path of the tracepoint.
-- Steve
| |