linux/kernel/trace
Steven Rostedt 5361499101 ftrace: add stack trace to function tracer
Impact: new feature to stack trace any function

Chris Mason asked about being able to pick and choose a function
and get a stack trace from it. This feature enables his request.

 # echo io_schedule > /debug/tracing/set_ftrace_filter
 # echo function > /debug/tracing/current_tracer
 # echo func_stack_trace > /debug/tracing/trace_options

Produces the following in /debug/tracing/trace:

       kjournald-702   [001]   135.673060: io_schedule <-sync_buffer
       kjournald-702   [002]   135.673671:
 <= sync_buffer
 <= __wait_on_bit
 <= out_of_line_wait_on_bit
 <= __wait_on_buffer
 <= sync_dirty_buffer
 <= journal_commit_transaction
 <= kjournald

Note, be careful about turning this on without filtering the functions.
You may find that you have a 10 second lag between typing and seeing
what you typed. This is why the stack trace for the function tracer
does not use the same stack_trace flag as the other tracers use.

Signed-off-by: Steven Rostedt <srostedt@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
2009-01-16 12:15:32 +01:00
..
Kconfig tracing: add a new workqueue tracer 2009-01-14 12:11:43 +01:00
Makefile tracing: add a new workqueue tracer 2009-01-14 12:11:43 +01:00
ftrace.c tracing/function-graph-tracer: fix a regression while suspend to disk 2009-01-15 09:47:40 +01:00
kmemtrace.c kmemtrace: add kmemtrace_init() 2009-01-06 10:16:35 +01:00
ring_buffer.c ring_buffer: reset write when reserve buffer fail 2009-01-15 09:46:40 +01:00
trace.c ftrace: add stack trace to function tracer 2009-01-16 12:15:32 +01:00
trace.h ftrace: add stack trace to function tracer 2009-01-16 12:15:32 +01:00
trace_boot.c Merge branches 'tracing/kmemtrace2' and 'tracing/ftrace' into tracing/urgent 2009-01-06 10:18:43 +01:00
trace_branch.c tracing/ftrace: separate events tracing and stats tracing engine 2009-01-14 12:11:37 +01:00
trace_functions.c ftrace: add stack trace to function tracer 2009-01-16 12:15:32 +01:00
trace_functions_graph.c Merge branches 'tracing/kmemtrace2' and 'tracing/ftrace' into tracing/urgent 2009-01-06 10:18:43 +01:00
trace_hw_branches.c Merge branches 'tracing/kmemtrace2' and 'tracing/ftrace' into tracing/urgent 2009-01-06 10:18:43 +01:00
trace_irqsoff.c tracing/ftrace: change the type of the init() callback 2008-11-16 07:55:23 +01:00
trace_mmiotrace.c mmiotrace: count events lost due to not recording 2009-01-11 04:01:30 +01:00
trace_nop.c tracing/ftrace: make nop tracer using tracer flags 2008-11-18 11:10:59 +01:00
trace_output.c ftrace: fix trace_output 2009-01-16 12:15:20 +01:00
trace_output.h ftrace: fix trace_output 2009-01-16 12:15:20 +01:00
trace_power.c Merge branches 'tracing/kmemtrace2' and 'tracing/ftrace' into tracing/urgent 2009-01-06 10:18:43 +01:00
trace_sched_switch.c sched, trace: update trace_sched_wakeup() 2008-12-25 13:10:21 +01:00
trace_sched_wakeup.c sched, trace: update trace_sched_wakeup() 2008-12-25 13:10:21 +01:00
trace_selftest.c tracing/selftest: remove TRACE_CONT reference 2008-12-29 15:07:47 +01:00
trace_selftest_dynamic.c ftrace: fix dynamic ftrace selftest 2008-05-23 21:13:23 +02:00
trace_stack.c trace: better use of stack_trace_enabled for boot up code 2008-12-18 12:56:56 +01:00
trace_stat.c tracing: trace_stat.c cleanup 2009-01-15 11:31:21 +01:00
trace_stat.h tracing/ftrace: separate events tracing and stats tracing engine 2009-01-14 12:11:37 +01:00
trace_sysprof.c cpumask: convert kernel trace functions 2009-01-01 10:12:22 +10:30
trace_workqueue.c tracing: add a new workqueue tracer 2009-01-14 12:11:43 +01:00