aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/trace/ftrace.c
diff options
context:
space:
mode:
authorFrederic Weisbecker <fweisbec@gmail.com>2008-11-11 01:14:25 -0500
committerIngo Molnar <mingo@elte.hu>2008-11-11 04:29:12 -0500
commit15e6cb3673ea6277999642802406a764b49391b0 (patch)
treed0a46a918caa64d5fb1ed37be3e026b30e94fe77 /kernel/trace/ftrace.c
parentcaf4b323b02a16c92fba449952ac6515ddc76d7a (diff)
tracing: add a tracer to catch execution time of kernel functions
Impact: add new tracing plugin which can trace full (entry+exit) function calls This tracer uses the low level function return ftrace plugin to measure the execution time of the kernel functions. The first field is the caller of the function, the second is the measured function, and the last one is the execution time in nanoseconds. - v3: - HAVE_FUNCTION_RET_TRACER have been added. Each arch that support ftrace return should enable it. - ftrace_return_stub becomes ftrace_stub. - CONFIG_FUNCTION_RET_TRACER depends now on CONFIG_FUNCTION_TRACER - Return traces printing can be used for other tracers on trace.c - Adapt to the new tracing API (no more ctrl_update callback) - Correct the check of "disabled" during insertion. - Minor changes... Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com> Cc: Steven Rostedt <rostedt@goodmis.org> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'kernel/trace/ftrace.c')
-rw-r--r--kernel/trace/ftrace.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
index 4d2e751bfb11..f03fe74ecd67 100644
--- a/kernel/trace/ftrace.c
+++ b/kernel/trace/ftrace.c
@@ -1484,3 +1484,19 @@ ftrace_enable_sysctl(struct ctl_table *table, int write,
1484 return ret; 1484 return ret;
1485} 1485}
1486 1486
1487#ifdef CONFIG_FUNCTION_RET_TRACER
1488trace_function_return_t ftrace_function_return =
1489 (trace_function_return_t)ftrace_stub;
1490void register_ftrace_return(trace_function_return_t func)
1491{
1492 ftrace_function_return = func;
1493}
1494
1495void unregister_ftrace_return(void)
1496{
1497 ftrace_function_return = (trace_function_return_t)ftrace_stub;
1498}
1499#endif
1500
1501
1502