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: Thomas Gleixner <tglx@linutronix.de>
This commit is contained in:
parent
833883d9ac
commit
259aae864c
@ -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)) {
|
||||||
|
Loading…
Reference in New Issue
Block a user