Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933347AbZJGIqr (ORCPT ); Wed, 7 Oct 2009 04:46:47 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1758445AbZJGIqr (ORCPT ); Wed, 7 Oct 2009 04:46:47 -0400 Received: from smtp.nokia.com ([192.100.122.233]:36256 "EHLO mgw-mx06.nokia.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756594AbZJGIqq (ORCPT ); Wed, 7 Oct 2009 04:46:46 -0400 Subject: Re: [BISECTED] "conservative" cpufreq governor broken From: Eero Nurkkala Reply-To: ext-eero.nurkkala@nokia.com To: ext Steven Noonan Cc: "linux-kernel@vger.kernel.org" , Thomas Gleixner , Rik van Riel , Venkatesh Pallipadi In-Reply-To: References: <1254832609.31336.290.camel@eenurkka-desktop> <1254893230.30157.28.camel@eenurkka-desktop> <1254901778.30157.62.camel@eenurkka-desktop> <1254903263.30157.69.camel@eenurkka-desktop> Content-Type: text/plain Organization: Nokia Date: Wed, 07 Oct 2009 11:43:33 +0300 Message-Id: <1254905013.30157.75.camel@eenurkka-desktop> Mime-Version: 1.0 X-Mailer: Evolution 2.26.1 Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 07 Oct 2009 08:44:44.0060 (UTC) FILETIME=[6ADDCDC0:01CA472A] X-Nokia-AV: Clean Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1437 Lines: 45 On Wed, 2009-10-07 at 10:24 +0200, ext Steven Noonan wrote: > > > > Steven, how do the cpu loads look like without the patch? > > They're sane: > > [ 40.019381] cpufreq load = 100 * (66666 - 66337) / 66666 = 0 > [ 40.019396] cpufreq load = 100 * (66666 - 66299) / 66666 = 0 > [ 73.352580] cpufreq load = 100 * (66717 - 66349) / 66717 = 0 > [ 73.352595] cpufreq load = 100 * (66634 - 63848) / 66634 = 4 Thank you. Could you please try the following: Now, if ts->nohz_mode == NOHZ_MODE_INACTIVE, ts->inidle is not set and all subsequent calls from irq_exit() think we weren't idling, which is not true. --- a/kernel/time/tick-sched.c +++ b/kernel/time/tick-sched.c @@ -233,6 +233,8 @@ void tick_nohz_stop_sched_tick(int inidle) now = tick_nohz_start_idle(ts); + ts->inidle = 1; + /* * If this cpu is offline and it is the one which updates * jiffies, then give up the assignment and let it be taken by @@ -248,8 +250,6 @@ void tick_nohz_stop_sched_tick(int inidle) if (unlikely(ts->nohz_mode == NOHZ_MODE_INACTIVE)) goto end; - ts->inidle = 1; - if (need_resched()) goto end; -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/