diff options
author | Michal Simek <monstr@monstr.eu> | 2009-12-10 08:15:44 -0500 |
---|---|---|
committer | Michal Simek <monstr@monstr.eu> | 2009-12-14 02:44:01 -0500 |
commit | 7d241ff0567b9503d79ee775c40927d09b509f83 (patch) | |
tree | 8de1af72c5643416ee427edc7e9ff2170e0d73db /arch/microblaze/include | |
parent | 6d9e60ce30a1be35491c74df00aaa25d869f8a02 (diff) |
microblaze: ftrace: Add dynamic trace support
With dynamic function tracer, by default, _mcount is defined as an
"empty" function, it returns directly without any more action. When
enabling it in user-space, it will jump to a real tracing
function(ftrace_caller), and do the real job for us.
Differ from the static function tracer, dynamic function tracer provides
two functions ftrace_make_call()/ftrace_make_nop() to enable/disable the
tracing of some indicated kernel functions(set_ftrace_filter).
In the kernel version, there is only one "_mcount" string for every
kernel function, so, we just need to match this one in mcount_regex of
scripts/recordmcount.pl.
For more information please look at code and Documentation/trace folder.
Steven ACK that scripts/recordmcount.pl part.
Acked-by: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Michal Simek <monstr@monstr.eu>
Diffstat (limited to 'arch/microblaze/include')
-rw-r--r-- | arch/microblaze/include/asm/ftrace.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/arch/microblaze/include/asm/ftrace.h b/arch/microblaze/include/asm/ftrace.h index 22beec58c021..fd2fa2eca62f 100644 --- a/arch/microblaze/include/asm/ftrace.h +++ b/arch/microblaze/include/asm/ftrace.h | |||
@@ -11,5 +11,16 @@ extern void _mcount(void); | |||
11 | extern void ftrace_call_graph(void); | 11 | extern void ftrace_call_graph(void); |
12 | #endif | 12 | #endif |
13 | 13 | ||
14 | #ifdef CONFIG_DYNAMIC_FTRACE | ||
15 | /* reloction of mcount call site is the same as the address */ | ||
16 | static inline unsigned long ftrace_call_adjust(unsigned long addr) | ||
17 | { | ||
18 | return addr; | ||
19 | } | ||
20 | |||
21 | struct dyn_arch_ftrace { | ||
22 | }; | ||
23 | #endif /* CONFIG_DYNAMIC_FTRACE */ | ||
24 | |||
14 | #endif /* CONFIG_FUNCTION_TRACER */ | 25 | #endif /* CONFIG_FUNCTION_TRACER */ |
15 | #endif /* _ASM_MICROBLAZE_FTRACE */ | 26 | #endif /* _ASM_MICROBLAZE_FTRACE */ |