Commit 259aae86 authored by Thomas Gleixner's avatar Thomas Gleixner

hrtimer: optimize the softirq time optimization

The previous optimization did not take the case into account where a
clock provides its own softirq_get_time() function.

Check for the availablitiy of the clock get time function first and
then check if we need to retrieve the time for both clocks via
hrtimer_softirq_gettime() to avoid a double evaluation of time in that
case as well.
Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
parent 833883d9
...@@ -1254,14 +1254,13 @@ void hrtimer_run_queues(void) ...@@ -1254,14 +1254,13 @@ void hrtimer_run_queues(void)
if (!base->first) if (!base->first)
continue; continue;
if (gettime) { if (base->get_softirq_time)
base->softirq_time = base->get_softirq_time();
else if (gettime) {
hrtimer_get_softirq_time(cpu_base); hrtimer_get_softirq_time(cpu_base);
gettime = 0; gettime = 0;
} }
if (base->get_softirq_time)
base->softirq_time = base->get_softirq_time();
spin_lock(&cpu_base->lock); spin_lock(&cpu_base->lock);
while ((node = base->first)) { while ((node = base->first)) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment