Commit 0fb71d34 authored by Minfei Huang's avatar Minfei Huang Committed by John Stultz

clocksource: Make clocksource insert entry more efficient

In clocksource_enqueue(), it is unnecessary to continue looping
the list, if we find there is an entry that the value of rating
is smaller than the new one. It is safe to be out the loop,
because all of entry are inserted in descending order.

Cc: Prarit Bhargava <prarit@redhat.com>
Cc: Richard Cochran <richardcochran@gmail.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@kernel.org>
Signed-off-by: default avatarMinfei Huang <mnghuan@gmail.com>
Signed-off-by: default avatarJohn Stultz <john.stultz@linaro.org>
parent af8c34ce
...@@ -669,10 +669,12 @@ static void clocksource_enqueue(struct clocksource *cs) ...@@ -669,10 +669,12 @@ static void clocksource_enqueue(struct clocksource *cs)
struct list_head *entry = &clocksource_list; struct list_head *entry = &clocksource_list;
struct clocksource *tmp; struct clocksource *tmp;
list_for_each_entry(tmp, &clocksource_list, list) list_for_each_entry(tmp, &clocksource_list, list) {
/* Keep track of the place, where to insert */ /* Keep track of the place, where to insert */
if (tmp->rating >= cs->rating) if (tmp->rating < cs->rating)
entry = &tmp->list; break;
entry = &tmp->list;
}
list_add(&cs->list, entry); list_add(&cs->list, entry);
} }
......
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