diff options
author | Minho Ban <mhban@samsung.com> | 2012-05-07 11:36:00 +0900 |
---|---|---|
committer | Steven Rostedt <rostedt@goodmis.org> | 2012-05-08 09:33:52 -0400 |
commit | b02ee9a33b65bcc4ad13c12a0b04afdaab3ddd8d (patch) | |
tree | bf634618536dd15ffb8d0129efeb7aac312279c6 /include/linux/ftrace.h | |
parent | 19631cb3d67c24c8b1fa58bc69bc2fed8d15095d (diff) | |
download | op-kernel-dev-b02ee9a33b65bcc4ad13c12a0b04afdaab3ddd8d.zip op-kernel-dev-b02ee9a33b65bcc4ad13c12a0b04afdaab3ddd8d.tar.gz |
tracing: Prevent wasting time evaluating parameters in trace_preempt_on/off
This fixes spending time for evaluating parameters in trace_preempt_on/off when
the tracer config is off.
The patch mainly inspired by Steven Rostedt, thanks Steven.
Link: http://lkml.kernel.org/r/4FA73510.7070705@samsung.com
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Paul Turner <pjt@google.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Cc: Josh Triplett <josh@joshtriplett.org>
Signed-off-by: Minho Ban <mhban@samsung.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Diffstat (limited to 'include/linux/ftrace.h')
-rw-r--r-- | include/linux/ftrace.h | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/include/linux/ftrace.h b/include/linux/ftrace.h index 0b55903..d32cc5e 100644 --- a/include/linux/ftrace.h +++ b/include/linux/ftrace.h @@ -491,8 +491,12 @@ static inline void __ftrace_enabled_restore(int enabled) extern void trace_preempt_on(unsigned long a0, unsigned long a1); extern void trace_preempt_off(unsigned long a0, unsigned long a1); #else - static inline void trace_preempt_on(unsigned long a0, unsigned long a1) { } - static inline void trace_preempt_off(unsigned long a0, unsigned long a1) { } +/* + * Use defines instead of static inlines because some arches will make code out + * of the CALLER_ADDR, when we really want these to be a real nop. + */ +# define trace_preempt_on(a0, a1) do { } while (0) +# define trace_preempt_off(a0, a1) do { } while (0) #endif #ifdef CONFIG_FTRACE_MCOUNT_RECORD |