On Monday 25 October 2010 16:11:10 Arjan van de Ven wrote: > On 10/25/2010 5:55 AM, Thomas Renninger wrote: > > > >> But the actual code does not actually deal with any 'state 0', does it? > > It does. Not being idle is tracked by cpuidle driver as state 0 > > (arch independent): > > /sys/devices/system/cpu/cpu0/cpuidle/state0/ > > halt/C1 on X86 is: > > /sys/devices/system/cpu/cpu0/cpuidle/state1/ > > ... > state0 is still OS idle! Yes, I just realized that. Which is very unfortunate. The whole cpuidle stuff is based on ACPI C-states and cat /sys/devices/system/cpu/cpu0/cpuidle/state0/name C0 is plain wrong if it's used as "poll idle" time. C0 is defined as (in the ACPI spec): ---------- 2.5 Processor Power State Definitions C0 Processor Power State While the processor is in this state, it executes instructions. ---------- > the API is just weird for this, from a userspace perspective > > if the kernel picks this state 0 for the idle handler, the userspace app > gets > two events > > one for going to state 0 to enter the idle state > one for going to state 0 to exit idle > > but they're the exact same event in your API. > > rather unpleasant from a userspace program perspective.... Yeah. But the re-definition of C0 being "Linux poll idle" will confuse users as well. Not sure whether this should get touched, though. Thanks for clarification, I wasn't aware of that... Thomas _______________________________________________ linux-pm mailing list linux-pm@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/linux-pm