aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/ftrace.h
diff options
context:
space:
mode:
authorSteven Rostedt (VMware) <rostedt@goodmis.org>2017-04-06 12:26:20 -0400
committerSteven Rostedt (VMware) <rostedt@goodmis.org>2017-04-10 14:34:10 -0400
commit5367278cb7ba74537bcad1470d75f30d95b09c14 (patch)
tree5260086992bf2f40e58bb0ce72529c402cd5e4b5 /include/linux/ftrace.h
parenttracing: Replace the per_cpu() with __this_cpu*() in trace_stack.c (diff)
downloadlinux-dev-5367278cb7ba74537bcad1470d75f30d95b09c14.tar.xz
linux-dev-5367278cb7ba74537bcad1470d75f30d95b09c14.zip
tracing: Add stack_tracer_disable/enable() functions
There are certain parts of the kernel that cannot let stack tracing proceed (namely in RCU), because the stack tracer uses RCU, and parts of RCU internals cannot handle having RCU read side locks taken. Add stack_tracer_disable() and stack_tracer_enable() functions to let RCU stop stack tracing on the current CPU when it is in those critical sections. Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
Diffstat (limited to 'include/linux/ftrace.h')
-rw-r--r--include/linux/ftrace.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/include/linux/ftrace.h b/include/linux/ftrace.h
index ef7123219f14..7b4e6572ab21 100644
--- a/include/linux/ftrace.h
+++ b/include/linux/ftrace.h
@@ -286,6 +286,12 @@ int
stack_trace_sysctl(struct ctl_table *table, int write,
void __user *buffer, size_t *lenp,
loff_t *ppos);
+
+void stack_tracer_disable(void);
+void stack_tracer_enable(void);
+#else
+static inline void stack_tracer_disable(void) { }
+static inline void stack_tracer_enable(void) { }
#endif
struct ftrace_func_command {