[PATCH 3/6] ftrace/x86: Warn and ignore graph tracing when RCU is disabled

From: Peter Zijlstra
Date: Mon Jan 23 2023 - 15:58:45 EST


All RCU disabled code should be noinstr and hence we should never get
here -- when we do, WARN about it and make sure to not actually do
tracing.

Signed-off-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
---
arch/x86/kernel/ftrace.c | 3 +++
1 file changed, 3 insertions(+)

--- a/arch/x86/kernel/ftrace.c
+++ b/arch/x86/kernel/ftrace.c
@@ -646,6 +646,9 @@ void prepare_ftrace_return(unsigned long
if (unlikely(atomic_read(&current->tracing_graph_pause)))
return;

+ if (WARN_ONCE(!rcu_is_watching(), "RCU not on for: %pS\n", (void *)ip))
+ return;
+
bit = ftrace_test_recursion_trylock(ip, *parent);
if (bit < 0)
return;