android_kernel_motorola_sm6225/kernel/trace
Frederic Weisbecker 48d68b20d0 tracing/function-graph-tracer: support for x86-64
Impact: extend and enable the function graph tracer to 64-bit x86

This patch implements the support for function graph tracer under x86-64.
Both static and dynamic tracing are supported.

This causes some small CPP conditional asm on arch/x86/kernel/ftrace.c I
wanted to use probe_kernel_read/write to make the return address
saving/patching code more generic but it causes tracing recursion.

That would be perhaps useful to implement a notrace version of these
function for other archs ports.

Note that arch/x86/process_64.c is not traced, as in X86-32. I first
thought __switch_to() was responsible of crashes during tracing because I
believed current task were changed inside but that's actually not the
case (actually yes, but not the "current" pointer).

So I will have to investigate to find the functions that harm here, to
enable tracing of the other functions inside (but there is no issue at
this time, while process_64.c stays out of -pg flags).

A little possible race condition is fixed inside this patch too. When the
tracer allocate a return stack dynamically, the current depth is not
initialized before but after. An interrupt could occur at this time and,
after seeing that the return stack is allocated, the tracer could try to
trace it with a random uninitialized depth. It's a prevention, even if I
hadn't problems with it.

Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Tim Bird <tim.bird@am.sony.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
2008-12-02 09:47:48 +01:00
..
ftrace.c tracing/function-graph-tracer: support for x86-64 2008-12-02 09:47:48 +01:00
Kconfig Merge branches 'tracing/blktrace', 'tracing/ftrace', 'tracing/function-graph-tracer' and 'tracing/power-tracer' into tracing/core 2008-11-27 10:56:13 +01:00
Makefile Merge branches 'tracing/blktrace', 'tracing/ftrace', 'tracing/function-graph-tracer' and 'tracing/power-tracer' into tracing/core 2008-11-27 10:56:13 +01:00
ring_buffer.c ring-buffer: add tracing_off_permanent 2008-11-23 11:44:37 +01:00
trace.c tracing, alpha: fix build: add missing #ifdef CONFIG_STACKTRACE 2008-11-28 11:33:00 +01:00
trace.h Merge branches 'tracing/blktrace', 'tracing/ftrace', 'tracing/function-graph-tracer' and 'tracing/power-tracer' into tracing/core 2008-11-27 10:56:13 +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 tracing/branch-tracer: include missing irqflags.h 2008-11-29 10:11:54 +01:00
trace_bts.c x86, bts, ftrace: a BTS ftrace plug-in prototype 2008-11-25 17:31:13 +01:00
trace_functions.c tracing/ftrace: change the type of the init() callback 2008-11-16 07:55:23 +01:00
trace_functions_graph.c tracing/function-graph-tracer: more output tweaks 2008-11-28 10:15:06 +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 Merge branches 'tracing/branch-tracer', 'tracing/fastboot', 'tracing/ftrace', 'tracing/function-return-tracer', 'tracing/power-tracer', 'tracing/powerpc', 'tracing/ring-buffer', 'tracing/stack-tracer' and 'tracing/urgent' into tracing/core 2008-11-24 17:46:24 +01:00
trace_nop.c tracing/ftrace: make nop tracer using tracer flags 2008-11-18 11:10:59 +01:00
trace_power.c tracing: add "power-tracer": C/P state tracer to help power optimization 2008-11-26 08:29:32 +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.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_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