Re: [BISECTED] "conservative" cpufreq governor broken

From: Eero Nurkkala
Date: Wed Oct 07 2009 - 04:47:11 EST


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@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/