aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWu Zhangjin <[email protected]>2009-11-20 20:34:30 +0800
committerRalf Baechle <[email protected]>2009-12-17 01:57:22 +0000
commit69a7d1b3ec64786cfc8a16ef3e8585d1f93d3944 (patch)
tree543a4a531bb1e573984e8f855cd530748d05306d
parentd2bb0762993e11363d8343127516b8fe88f9006f (diff)
MIPS: Tracing: Enable HAVE_FUNCTION_TRACE_MCOUNT_TEST for MIPS
There is an exisiting common ftrace_test_stop_func() in kernel/trace/ftrace.c, which is used to check the global variable ftrace_trace_stop to determine whether stop the function tracing. This patch implepment the MIPS specific one to speedup the procedure. Thanks goes to Zhang Le for Cleaning it up. Signed-off-by: Wu Zhangjin <[email protected]> Cc: Steven Rostedt <[email protected]> Cc: Nicholas Mc Guire <[email protected]> Cc: [email protected] Cc: Wu Zhangjin <[email protected]> Cc: Ingo Molnar <[email protected]> Cc: Thomas Gleixner <[email protected]> Cc: Frederic Weisbecker <[email protected]> Cc: [email protected] Cc: [email protected] Patchwork: http://patchwork.linux-mips.org/patch/673/ Signed-off-by: Ralf Baechle <[email protected]>
-rw-r--r--arch/mips/Kconfig1
-rw-r--r--arch/mips/kernel/mcount.S3
2 files changed, 4 insertions, 0 deletions
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index 632dba2ac300..d203dbfa8037 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -6,6 +6,7 @@ config MIPS
select HAVE_OPROFILE
select HAVE_ARCH_KGDB
select HAVE_FUNCTION_TRACER
+ select HAVE_FUNCTION_TRACE_MCOUNT_TEST
# Horrible source of confusion. Die, die, die ...
select EMBEDDED
select RTC_LIB if !MACH_LOONGSON
diff --git a/arch/mips/kernel/mcount.S b/arch/mips/kernel/mcount.S
index cebcc3c11305..cbb45edad464 100644
--- a/arch/mips/kernel/mcount.S
+++ b/arch/mips/kernel/mcount.S
@@ -59,6 +59,9 @@
.endm
NESTED(_mcount, PT_SIZE, ra)
+ lw t0, function_trace_stop
+ bnez t0, ftrace_stub
+ nop
PTR_LA t0, ftrace_stub
PTR_L t1, ftrace_trace_function /* Prepare t1 for (1) */
bne t0, t1, static_trace