diff options
author | Jiri Olsa <jolsa@redhat.com> | 2012-02-15 09:51:48 -0500 |
---|---|---|
committer | Steven Rostedt <rostedt@goodmis.org> | 2012-02-21 11:08:23 -0500 |
commit | e248491ac283b516958ca9ab62c8e74b6718bca8 (patch) | |
tree | 77e5a6589cf55ebeabe01a321d792e216162efe6 /kernel/trace/trace.h | |
parent | 5b34926114e39e12005031269613d2b13194aeba (diff) |
ftrace: Add enable/disable ftrace_ops control interface
Adding a way to temporarily enable/disable ftrace_ops. The change
follows the same way as 'global' ftrace_ops are done.
Introducing 2 global ftrace_ops - control_ops and ftrace_control_list
which take over all ftrace_ops registered with FTRACE_OPS_FL_CONTROL
flag. In addition new per cpu flag called 'disabled' is also added to
ftrace_ops to provide the control information for each cpu.
When ftrace_ops with FTRACE_OPS_FL_CONTROL is registered, it is
set as disabled for all cpus.
The ftrace_control_list contains all the registered 'control' ftrace_ops.
The control_ops provides function which iterates ftrace_control_list
and does the check for 'disabled' flag on current cpu.
Adding 3 inline functions:
ftrace_function_local_disable/ftrace_function_local_enable
- enable/disable the ftrace_ops on current cpu
ftrace_function_local_disabled
- get disabled ftrace_ops::disabled value for current cpu
Link: http://lkml.kernel.org/r/1329317514-8131-2-git-send-email-jolsa@redhat.com
Acked-by: Frederic Weisbecker <fweisbec@gmail.com>
Signed-off-by: Jiri Olsa <jolsa@redhat.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Diffstat (limited to 'kernel/trace/trace.h')
-rw-r--r-- | kernel/trace/trace.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/kernel/trace/trace.h b/kernel/trace/trace.h index b93ecbadad6d..55c6ea00f28a 100644 --- a/kernel/trace/trace.h +++ b/kernel/trace/trace.h | |||
@@ -288,6 +288,8 @@ struct tracer { | |||
288 | /* for function tracing recursion */ | 288 | /* for function tracing recursion */ |
289 | #define TRACE_INTERNAL_BIT (1<<11) | 289 | #define TRACE_INTERNAL_BIT (1<<11) |
290 | #define TRACE_GLOBAL_BIT (1<<12) | 290 | #define TRACE_GLOBAL_BIT (1<<12) |
291 | #define TRACE_CONTROL_BIT (1<<13) | ||
292 | |||
291 | /* | 293 | /* |
292 | * Abuse of the trace_recursion. | 294 | * Abuse of the trace_recursion. |
293 | * As we need a way to maintain state if we are tracing the function | 295 | * As we need a way to maintain state if we are tracing the function |