On Wed, 1 Jul 2026 at 19:27, Steven Rostedt <[email protected]> wrote: > From: Steven Rostedt <[email protected]> > > Tracepoints require that RCU is watching. To prevent them from being used > in places that RCU is not watching, the trace_##event() macro always > calls rcu_is_watching() even when the event is not enabled and warns if > RCU is not watching. This is to make sure a warning is triggered even if > the tracepoint is never enabled (as it is only a bug when it is). > > It was noticed that tracepoints could be hidden within > trace_#event#_enabled() calls, which are used to do extra work for the > tracepoint only if the tracepoint is enabled. But this also can hide the > fact that a tracepoint is placed in a location that can be called when RCU > is not watching. > > Commit 9764e731ef6ab ("tracepoint: Add lockdep rcu_is_watching() check to > trace_##name##_enabled()") added a check to the trace_##event##_enabled() > macro to make sure RCU is watching when it is called to make sure not to > hide the bug of a tracepoint being called when RCU is not watching. > > There is one case in the irq_disable tracepoint where it is within a > trace_irq_disable_enabled() block, but it checks if RCU is watching, and > if it isn't, it makes a call to ct_irq_enter() that makes RCU watch again. > But because trace_irq_disable_enabled() now checks if RCU is watching and > will trigger if it isn't. This is a false warning as the code within > the block handles this case. > > Add a new internal macro __trace_##event##_enabled() that doesn't check if > RCU is watching, and convert the irq_enable/disable tracepoints over to > it. > > Reported-by: Geert Uytterhoeven <[email protected]> > Closes: > https://lore.kernel.org/all/camuhmdxud_rpwag_hfqa2bybgrxg6knxgl1obcwzrptsk3t...@mail.gmail.com/ > Fixes: 9764e731ef6ab ("tracepoint: Add lockdep rcu_is_watching() check to > trace_##name##_enabled()") > Signed-off-by: Steven Rostedt <[email protected]>
Thanks, warning gone on all affected platforms. Tested-by: Geert Uytterhoeven <[email protected]> Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected] In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds
