
rostedt at goodmis
May 9, 2012, 9:57 AM
Post #1 of 1
(31 views)
Permalink
|
|
[PATCH 1/3] tracing: Prevent wasting time evaluating parameters in trace_preempt_on/off
|
|
From: Minho Ban <mhban [at] samsung> 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 [at] samsung Cc: Ingo Molnar <mingo [at] redhat> Cc: Frederic Weisbecker <fweisbec [at] gmail> Cc: Peter Zijlstra <a.p.zijlstra [at] chello> Cc: Paul Turner <pjt [at] google> Cc: Thomas Gleixner <tglx [at] linutronix> Cc: Hidetoshi Seto <seto.hidetoshi [at] jp> Cc: Paul E. McKenney <paulmck [at] linux> Cc: Josh Triplett <josh [at] joshtriplett> Signed-off-by: Minho Ban <mhban [at] samsung> Signed-off-by: Steven Rostedt <rostedt [at] goodmis> --- include/linux/ftrace.h | 8 ++++++-- 1 file 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 -- 1.7.10
|