summaryrefslogtreecommitdiffstats
path: root/kernel/rcu
diff options
context:
space:
mode:
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>2017-08-31 16:47:08 -0700
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>2017-10-09 14:25:17 -0700
commit83b6ca1fede773eebcdfb44f5a94eb410d48b886 (patch)
treeab005f3313b5d56efe7cbf7757b24c8a1ca190e2 /kernel/rcu
parent9b9500da81502738efa1b485a8835f174ff7be6d (diff)
downloadlinux-83b6ca1fede773eebcdfb44f5a94eb410d48b886.tar.gz
linux-83b6ca1fede773eebcdfb44f5a94eb410d48b886.tar.bz2
linux-83b6ca1fede773eebcdfb44f5a94eb410d48b886.zip
rcu: Turn off tracing before dumping trace
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 <paulmck@linux.vnet.ibm.com>
Diffstat (limited to 'kernel/rcu')
-rw-r--r--kernel/rcu/rcu.h4
1 files changed, 3 insertions, 1 deletions
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);