* Borislav Petkov <b...@suse.de> wrote: > On Wed, May 20, 2015 at 10:55:20AM +0200, Ingo Molnar wrote: > > Does it use it to decide how 'deep' a sleep it will go into, i.e. > > larger timeouts cause longer entry and exit latencies? > > That's what the HLT thing does. Cores go into C1 and then at some > point (hysteresis, etc) the whole core complex enters C1E.
Well, HLT does not get any hint from the OS how long the idling is expected to last. So I don't think it's the same thing. > The MWAIT* should be used for only shorter sleeps as it remains in > C1. IMHO, of course. > > But the problem there is another: what happens if the timeout fires, > you wake up and see that you can remain idle? Do HLT? Do another > MWAITX round? Another MWAITX round - we've got no crystal ball, so the hint might be wrong if an external event occurs that we did not anticipate. As long as it's a statistical optimization it's OK: i.e. if the hardware only uses the timeout to determine how deep to sleep. > This means you have an additional unnecessary wakeup which costs. I don't think MWAITX will wake up in itself. (If yes then it's essentially a timer in disguise and needs a whole different approach!) > > I suppose it's also the case that if an interrupt arrives _before_ > > the expected timeout then MWAITX will try to exit immediately, it > > won't wait until the timeout, right? > > I'd assume so - I mean, it must, right. > > BUT!, in talking to Andy about it last night on IRC, he pointed out > that when using acpi_idle, we never come to calling x86_idle() and > from looking quickly at cpuidle_idle_call(), that still might be the > case as we go to use_default only when there's an error with the > cpuidle driver or so. Yes, we don't normally see these idle handlers, ACPI takes over on most systems. > So Rui, before you go and do more work on it, you should probably > analyze what cpuidle exactly does (if you haven't done so yet). And > on AMD we do use acpi_idle - at least on my F15h box that is the > case: > > $ grep . /sys/devices/system/cpu/cpuidle/current_* > /sys/devices/system/cpu/cpuidle/current_driver:acpi_idle > /sys/devices/system/cpu/cpuidle/current_governor_ro:menu Yes. The question would be: on systems that provide ACPI idle but also have MWAITX support, which one behaves better on the hardware side? Thanks, Ingo -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/