mirror of https://gitee.com/openkylin/linux.git
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: Minfei Huang <mnghuan@gmail.com> Signed-off-by: John Stultz <john.stultz@linaro.org>
This commit is contained in:
parent
af8c34ce6a
commit
0fb71d340d
|
@ -669,10 +669,12 @@ static void clocksource_enqueue(struct clocksource *cs)
|
|||
struct list_head *entry = &clocksource_list;
|
||||
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 */
|
||||
if (tmp->rating >= cs->rating)
|
||||
entry = &tmp->list;
|
||||
if (tmp->rating < cs->rating)
|
||||
break;
|
||||
entry = &tmp->list;
|
||||
}
|
||||
list_add(&cs->list, entry);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue