diff options
author | Rabin Vincent <rabin@rab.in> | 2010-11-06 18:33:21 +0100 |
---|---|---|
committer | Rabin Vincent <rabin@rab.in> | 2010-11-19 17:13:27 +0100 |
commit | dd686eb13959e49a1112fd608c124ab711050582 (patch) | |
tree | 58dfcbac57ace3dcb449593ca333b98c147a2410 /arch/arm/kernel/entry-common.S | |
parent | ARM: ftrace: function graph tracer support (diff) | |
download | linux-dd686eb13959e49a1112fd608c124ab711050582.tar.xz linux-dd686eb13959e49a1112fd608c124ab711050582.zip |
ARM: ftrace: graph tracer + dynamic ftrace
Support the graph tracer + dynamic ftrace combination on ARM.
Signed-off-by: Rabin Vincent <rabin@rab.in>
Diffstat (limited to 'arch/arm/kernel/entry-common.S')
-rw-r--r-- | arch/arm/kernel/entry-common.S | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/arch/arm/kernel/entry-common.S b/arch/arm/kernel/entry-common.S index 9f1766211668..aae802ee12f8 100644 --- a/arch/arm/kernel/entry-common.S +++ b/arch/arm/kernel/entry-common.S @@ -183,12 +183,24 @@ ENDPROC(ret_from_fork) ftrace_call\suffix: bl ftrace_stub +#ifdef CONFIG_FUNCTION_GRAPH_TRACER + .globl ftrace_graph_call\suffix +ftrace_graph_call\suffix: + mov r0, r0 +#endif + mcount_exit .endm .macro __ftrace_graph_caller sub r0, fp, #4 @ &lr of instrumented routine (&parent) +#ifdef CONFIG_DYNAMIC_FTRACE + @ called from __ftrace_caller, saved in mcount_enter + ldr r1, [sp, #16] @ instrumented routine (func) +#else + @ called from __mcount, untouched in lr mov r1, lr @ instrumented routine (func) +#endif sub r1, r1, #MCOUNT_INSN_SIZE mov r2, fp @ frame pointer bl prepare_ftrace_return |