Re: [PATCH] x86_64 add missing enter_idle() calls
From: Stephane Eranian
Date: Mon Oct 16 2006 - 10:14:32 EST
Andi,
On Mon, Oct 16, 2006 at 12:08:13PM +0200, Andi Kleen wrote:
> On Friday 06 October 2006 10:16, Stephane Eranian wrote:
> > Hi,
> >
> > Unless I am mistaken, I think we are missing some calls to enter_idle()
> > in the x86_64 tree. The following patch adds a bunch of missing
> > enter_idle() callbacks for some of the "direct" interrupt handlers.
> >
> > changelog:
> > - adds missing enter_idle() calls to most of the "direct" interrupt
> > handlers.
>
> HLT returns after an interrupt and then does enter_idle()
With the original code, the number of callbacks you see for IDLE_START and
IDLE_STOP is not too obvious.
On an idle system Opteron 250 with HZ=250, one would expect to see for a 10s duration:
- for CPU0 : IDLE_START = IDLE_STOP = about 5000 calls
- for other CPUs: IDLE_START = IDLE_STOP = about 2500 calls
With the original code, you get the following number of calls:
CPU0.IDLE_START = 44 (enter_idle)
CPU0.IDLE_STOP = 5206 (exit_idle)
CPU1.IDLE_START = 27 (enter_idle)
CPU1.IDLE_STOP = 2528 (exit_idle)
Now, of course, you may get "batched" interrupts where you do not return to idle
before you process the next interrupt. But the difference seems quite high here.
Do you have an explanation for this?
--
-Stephane
-
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/