Message ID | 1459518409-9448-1-git-send-email-daniel.lezcano@linaro.org |
---|---|
State | Superseded |
Headers | show |
On 04/01/2016 05:10 PM, Peter Zijlstra wrote: > On Fri, Apr 01, 2016 at 03:46:48PM +0200, Daniel Lezcano wrote: > >> Remove the duplicate test by directly calling sched_clock_cpu() and let the >> static key act in this function instead. We can assume gcc is smart enough to >> inline cpu_clock()/local_clock() to sched_clock_cpu(). > > Why assume if you can easily check; so does it indeed inline? Actually, no. They are not inlined. With this patch we end up with one line functions: #ifdef CONFIG_HAVE_UNSTABLE_SCHED_CLOCK u64 cpu_clock(int cpu) { return sched_clock_cpu(cpu); } u64 local_clock(void) { return sched_clock_cpu(raw_smp_processor_id()); } #else u64 cpu_clock(int cpu) { return sched_clock(); } u64 local_clock(void) { return sched_clock(); } #endif is it worth to convert them to static inline function ? (static inline does effectively inline those functions). -- <http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook | <http://twitter.com/#!/linaroorg> Twitter | <http://www.linaro.org/linaro-blog/> Blog
diff --git a/kernel/sched/clock.c b/kernel/sched/clock.c index fedb967..30c4b20 100644 --- a/kernel/sched/clock.c +++ b/kernel/sched/clock.c @@ -375,10 +375,7 @@ EXPORT_SYMBOL_GPL(sched_clock_idle_wakeup_event); */ u64 cpu_clock(int cpu) { - if (!sched_clock_stable()) - return sched_clock_cpu(cpu); - - return sched_clock(); + return sched_clock_cpu(cpu); } /* @@ -390,10 +387,7 @@ u64 cpu_clock(int cpu) */ u64 local_clock(void) { - if (!sched_clock_stable()) - return sched_clock_cpu(raw_smp_processor_id()); - - return sched_clock(); + return sched_clock_cpu(raw_smp_processor_id()); } #else /* CONFIG_HAVE_UNSTABLE_SCHED_CLOCK */
In case the HAVE_UNSTABLE_SCHED_CLOCK config is set, the cpu_clock() version checks if sched_clock_stable() is not set and calls sched_clock_cpu(), otherwise it calls sched_clock(). sched_clock_cpu() checks also if sched_clock_stable() is set and, if true, calls sched_clock(). sched_clock() will be called in sched_clock_cpu() if sched_clock_stable() is true. Remove the duplicate test by directly calling sched_clock_cpu() and let the static key act in this function instead. We can assume gcc is smart enough to inline cpu_clock()/local_clock() to sched_clock_cpu(). Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org> --- kernel/sched/clock.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) -- 1.9.1