[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <19f34abd0805140011ybee42c7mf78d1ae97b234460@mail.gmail.com>
Date: Wed, 14 May 2008 09:11:55 +0200
From: "Vegard Nossum" <vegard.nossum@...il.com>
To: "Ingo Molnar" <mingo@...e.hu>
Cc: "Andi Kleen" <ak@...e.de>, "Thomas Gleixner" <tglx@...utronix.de>,
"Andreas Herrmann" <andreas.herrmann3@....com>,
"S.Çağlar Onur" <caglar@...dus.org.tr>,
Valdis.Kletnieks@...edu, "Matt Mackall" <mpm@...enic.com>,
linux-kernel@...r.kernel.org
Subject: Re: [BISECTED] Lots of "rescheduling IPIs" in powertop
Hi,
On Wed, May 14, 2008 at 8:56 AM, Ingo Molnar <mingo@...e.hu> wrote:
>
> * Vegard Nossum <vegard.nossum@...il.com> wrote:
>
> > Hi,
> >
> > Recap: powertop shows between 200-400 wakeups/second with the
> > description "<kernel IPI>: Rescheduling interrupts" when all
> > processors have load (e.g. I need to run two busy-loops on my 2-CPU
> > system for this to show up).
>
> ok, could you try the fix below? It was a mistake to make mwait use
> dependent on power considerations - on a desktop CPU it is unlikely to
> use more power than a simple HLT - and the IPIs are extra scheduling
> latency and extra power used.
This fixes it for the desktop machine at least. I guess I should try
on the laptop as well, but that will have to wait. Time for school :-)
Thanks.
Vegard
> -------------->
> Subject: x86: remove mwait C-state capability
> From: Ingo Molnar <mingo@...e.hu>
> Date: Wed May 14 08:47:40 CEST 2008
>
>
> Signed-off-by: Ingo Molnar <mingo@...e.hu>
> ---
> arch/x86/kernel/process.c | 11 +----------
> 1 file changed, 1 insertion(+), 10 deletions(-)
>
> Index: linux/arch/x86/kernel/process.c
> ===================================================================
> --- linux.orig/arch/x86/kernel/process.c
> +++ linux/arch/x86/kernel/process.c
> @@ -99,15 +99,6 @@ static void mwait_idle(void)
> local_irq_enable();
> }
>
> -
> -static int __cpuinit mwait_usable(const struct cpuinfo_x86 *c)
> -{
> - if (force_mwait)
> - return 1;
> - /* Any C1 states supported? */
> - return c->cpuid_level >= 5 && ((cpuid_edx(5) >> 4) & 0xf) > 0;
> -}
> -
> /*
> * On SMP it's slightly faster (but much more power-consuming!)
> * to poll the ->work.need_resched flag instead of waiting for the
> @@ -131,7 +122,7 @@ void __cpuinit select_idle_routine(const
> " performance may degrade.\n");
> }
> #endif
> - if (cpu_has(c, X86_FEATURE_MWAIT) && mwait_usable(c)) {
> + if (cpu_has(c, X86_FEATURE_MWAIT)) {
> /*
> * Skip, if setup has overridden idle.
> * One CPU supports mwait => All CPUs supports mwait
>
--
"The animistic metaphor of the bug that maliciously sneaked in while
the programmer was not looking is intellectually dishonest as it
disguises that the error is the programmer's own creation."
-- E. W. Dijkstra, EWD1036
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists