diff options
author | Steven Rostedt (Red Hat) <rostedt@goodmis.org> | 2013-06-15 00:21:43 +0400 |
---|---|---|
committer | Steven Rostedt <rostedt@goodmis.org> | 2013-06-20 07:32:07 +0400 |
commit | de7edd31457b626e54a0b2a7e8ff4d65492f01ad (patch) | |
tree | fc98cad3155f6cded6192709c4cb496dd17282db /include/linux/ftrace.h | |
parent | c3e13c7c0605677a2c94957b39157f4501cea9a8 (diff) | |
download | linux-de7edd31457b626e54a0b2a7e8ff4d65492f01ad.tar.xz |
tracing: Disable tracing on warning
Add a traceoff_on_warning option in both the kernel command line as well
as a sysctl option. When set, any WARN*() function that is hit will cause
the tracing_on variable to be cleared, which disables writing to the
ring buffer.
This is useful especially when tracing a bug with function tracing. When
a warning is hit, the print caused by the warning can flood the trace with
the functions that producing the output for the warning. This can make the
resulting trace useless by either hiding where the bug happened, or worse,
by overflowing the buffer and losing the trace of the bug totally.
Acked-by: Peter Zijlstra <peterz@infradead.org>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Diffstat (limited to 'include/linux/ftrace.h')
-rw-r--r-- | include/linux/ftrace.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/include/linux/ftrace.h b/include/linux/ftrace.h index e48ed1d7876d..9f15c0064c50 100644 --- a/include/linux/ftrace.h +++ b/include/linux/ftrace.h @@ -824,10 +824,15 @@ enum ftrace_dump_mode; extern enum ftrace_dump_mode ftrace_dump_on_oops; +extern void disable_trace_on_warning(void); +extern int __disable_trace_on_warning; + #ifdef CONFIG_PREEMPT #define INIT_TRACE_RECURSION .trace_recursion = 0, #endif +#else /* CONFIG_TRACING */ +static inline void disable_trace_on_warning(void) { } #endif /* CONFIG_TRACING */ #ifndef INIT_TRACE_RECURSION |