Re: 50 Watt idle power regression bisected to Linux-3.10

From: Borislav Petkov
Date: Wed Dec 11 2013 - 06:39:04 EST


On Wed, Dec 11, 2013 at 12:28:36PM +0100, Thomas Gleixner wrote:
> On Wed, 11 Dec 2013, Mike Galbraith wrote:
> > Alakazam..
> > Yup, magical gremlin repellent works on 8 socket DL980 too.
>
> Now here is a less magical version of the gremlin repellent.
>
> And just for the amusement value: The erratum for the series 7400
> says:
>
> AAI65. MONITOR/MWAIT May Have Excessive False Wakeups
>
> Problem: Normally, if MWAIT is used to enter a C-state that is
> C1 or higher, a store to the address range armed by
> the MONITOR instruction will cause the processor to
> exit MWAIT. Due to this erratum, false wakeups may
> occur when the monitored address range was recently
> written prior to executing the MONITOR instruction.
>
> Implication: Due to this erratum, performance and power savings may
> be impacted due to excessive false wakeups.
>
> Workaround: Execute a CLFLUSH Instruction immediately before every
> MONITOR instruction when the monitored location may
> have been recently written.
>
> Now that looks like the very same issue on these westmere EX
> machines.
>
> These false wakeups can be observed already before the idle changes
> and now they are just more prominent.
>
> Adding that clflush() unconditionally fixes the issue at least on
> Boris machine.
>
> Mike, can you retest on that 8 socket monstrum, please?
>
> So it looks like the idle power regression is actually a software
> change which exhibits a hardware "regression".

Right, if it turns out that this is really the case and that this
erratum hasn't been fixed for models later than 29 - we'd need the
additional model numbers to set X86_FEATURE_CLFLUSH_MONITOR correctly.

--
Regards/Gruss,
Boris.

Sent from a fat crate under my desk. Formatting is fine.
--
--
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/