diff options
author | Rabin Vincent <rabin@rab.in> | 2010-11-06 13:33:21 -0400 |
---|---|---|
committer | Rabin Vincent <rabin@rab.in> | 2010-11-19 11:13:27 -0500 |
commit | dd686eb13959e49a1112fd608c124ab711050582 (patch) | |
tree | 58dfcbac57ace3dcb449593ca333b98c147a2410 /arch/arm/kernel/entry-common.S | |
parent | 376cfa8730c08c0394d0aa1d4a80fd8c9971f323 (diff) |
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 9f176621166..aae802ee12f 100644 --- a/arch/arm/kernel/entry-common.S +++ b/arch/arm/kernel/entry-common.S | |||
@@ -183,12 +183,24 @@ ENDPROC(ret_from_fork) | |||
183 | ftrace_call\suffix: | 183 | ftrace_call\suffix: |
184 | bl ftrace_stub | 184 | bl ftrace_stub |
185 | 185 | ||
186 | #ifdef CONFIG_FUNCTION_GRAPH_TRACER | ||
187 | .globl ftrace_graph_call\suffix | ||
188 | ftrace_graph_call\suffix: | ||
189 | mov r0, r0 | ||
190 | #endif | ||
191 | |||
186 | mcount_exit | 192 | mcount_exit |
187 | .endm | 193 | .endm |
188 | 194 | ||
189 | .macro __ftrace_graph_caller | 195 | .macro __ftrace_graph_caller |
190 | sub r0, fp, #4 @ &lr of instrumented routine (&parent) | 196 | sub r0, fp, #4 @ &lr of instrumented routine (&parent) |
197 | #ifdef CONFIG_DYNAMIC_FTRACE | ||
198 | @ called from __ftrace_caller, saved in mcount_enter | ||
199 | ldr r1, [sp, #16] @ instrumented routine (func) | ||
200 | #else | ||
201 | @ called from __mcount, untouched in lr | ||
191 | mov r1, lr @ instrumented routine (func) | 202 | mov r1, lr @ instrumented routine (func) |
203 | #endif | ||
192 | sub r1, r1, #MCOUNT_INSN_SIZE | 204 | sub r1, r1, #MCOUNT_INSN_SIZE |
193 | mov r2, fp @ frame pointer | 205 | mov r2, fp @ frame pointer |
194 | bl prepare_ftrace_return | 206 | bl prepare_ftrace_return |