linux/kernel/trace
Frederic Weisbecker f201ae2356 tracing/function-return-tracer: store return stack into task_struct and allocate it dynamically
Impact: use deeper function tracing depth safely

Some tests showed that function return tracing needed a more deeper depth
of function calls. But it could be unsafe to store these return addresses
to the stack.

So these arrays will now be allocated dynamically into task_struct of current
only when the tracer is activated.

Typical scheme when tracer is activated:
- allocate a return stack for each task in global list.
- fork: allocate the return stack for the newly created task
- exit: free return stack of current
- idle init: same as fork

I chose a default depth of 50. I don't have overruns anymore.

Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
2008-11-23 09:17:26 +01:00
..
ftrace.c tracing/function-return-tracer: store return stack into task_struct and allocate it dynamically 2008-11-23 09:17:26 +01:00
Kconfig tracing/function-return-tracer: support for dynamic ftrace on function return tracer 2008-11-16 07:57:38 +01:00
Makefile ftrace: rename trace_unlikely.c file 2008-11-12 22:28:40 +01:00
ring_buffer.c Merge branches 'tracing/ftrace' and 'tracing/urgent' into tracing/core 2008-11-19 10:04:25 +01:00
trace_boot.c tracing/ftrace: change the type of the init() callback 2008-11-16 07:55:23 +01:00
trace_branch.c Merge branches 'tracing/branch-tracer', 'tracing/ftrace', 'tracing/function-return-tracer', 'tracing/tracepoints' and 'tracing/urgent' into tracing/core 2008-11-17 09:36:22 +01:00
trace_functions_return.c tracing/function-return-tracer: add the overrun field 2008-11-18 11:11:00 +01:00
trace_functions.c tracing/ftrace: change the type of the init() callback 2008-11-16 07:55:23 +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 tracing/ftrace: change the type of the init() callback 2008-11-16 07:55:23 +01:00
trace_nop.c tracing/ftrace: make nop tracer using tracer flags 2008-11-18 11:10:59 +01:00
trace_sched_switch.c tracing/ftrace: change the type of the init() callback 2008-11-16 07:55:23 +01:00
trace_sched_wakeup.c tracing/ftrace: change the type of the init() callback 2008-11-16 07:55:23 +01:00
trace_selftest_dynamic.c ftrace: fix dynamic ftrace selftest 2008-05-23 21:13:23 +02:00
trace_selftest.c tracing/ftrace: change the type of the init() callback 2008-11-16 07:55:23 +01:00
trace_stack.c Merge branches 'tracing/profiling', 'tracing/options' and 'tracing/urgent' into tracing/core 2008-11-23 09:10:32 +01:00
trace_sysprof.c tracing/ftrace: change the type of the init() callback 2008-11-16 07:55:23 +01:00
trace.c Merge branches 'tracing/profiling', 'tracing/options' and 'tracing/urgent' into tracing/core 2008-11-23 09:10:32 +01:00
trace.h tracing/function-return-tracer: add the overrun field 2008-11-18 11:11:00 +01:00