Re: [BISECTED] Lots of "rescheduling IPIs" in powertop

Vegard Nossum
2008-05-14T07:12:26Z

Hi,

On Wed, May 14, 2008 at 8:56 AM, Ingo Molnar <mingo@elte.hu> wrote:
>
> * Vegard Nossum <vegard.nossum@gmail.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@elte.hu>
> Date: Wed May 14 08:47:40 CEST 2008
>
>
> Signed-off-by: Ingo Molnar <mingo@elte.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