Currently, RCU allows tracing to continue when it automatically does
ftrace_dump() after detecting an error condition, which can result in
excessively large traces and lost trace events.  This commit therefore
does a tracing_off() before any of these ftrace_dump() calls.

Signed-off-by: Paul E. McKenney <paul...@linux.vnet.ibm.com>
---
 kernel/rcu/rcu.h | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/kernel/rcu/rcu.h b/kernel/rcu/rcu.h
index e4b43fef89f5..b8729eb09a5d 100644
--- a/kernel/rcu/rcu.h
+++ b/kernel/rcu/rcu.h
@@ -220,8 +220,10 @@ do { \
        static atomic_t ___rfd_beenhere = ATOMIC_INIT(0); \
        \
        if (!atomic_read(&___rfd_beenhere) && \
-           !atomic_xchg(&___rfd_beenhere, 1)) \
+           !atomic_xchg(&___rfd_beenhere, 1)) { \
+               tracing_off(); \
                ftrace_dump(oops_dump_mode); \
+       } \
 } while (0)
 
 void rcu_early_boot_tests(void);
-- 
2.5.2

Reply via email to