Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754057AbcDYJU3 (ORCPT ); Mon, 25 Apr 2016 05:20:29 -0400 Received: from mail-pf0-f194.google.com ([209.85.192.194]:34579 "EHLO mail-pf0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753675AbcDYJU1 (ORCPT ); Mon, 25 Apr 2016 05:20:27 -0400 From: Minfei Huang To: john.stultz@linaro.org, tglx@linutronix.de Cc: linux-kernel@vger.kernel.org, Minfei Huang Subject: [PATCH] Make clocksource insert entry more efficiently Date: Mon, 25 Apr 2016 17:20:28 +0800 Message-Id: <1461576028-2197-1-git-send-email-mnghuan@gmail.com> X-Mailer: git-send-email 2.6.3 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1005 Lines: 32 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. Signed-off-by: Minfei Huang --- kernel/time/clocksource.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/kernel/time/clocksource.c b/kernel/time/clocksource.c index 56ece14..6a5a310 100644 --- a/kernel/time/clocksource.c +++ b/kernel/time/clocksource.c @@ -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); } -- 2.6.3