CPUIdle versus Suspend


One Line Summary

What issues are keeping CPUIdle from being closer to suspend in terms of power savings?


On many systems in which the deepest C-state can be achieved in the idle path just as effectively as the suspend path, why is the power consumption gap between the two so great?

The obvious reason is that CPUIdle respects the scheduler and wakes up often. What can be done to coalesce wake-ups, make timers power-aware and any other mechanisms that might make CPUIdle more competitive with suspend?

Does the kernel have too many badly behaving timers in platform-independent code? Do userspace programmers have the right kind of timers and other APIs to express their needs more realistically? Can we process application timers early or late based on predictable wake-ups from peripheral devices such as modems?

My background is with OMAP, a popular ARM SoC. My jargon might be SoC-specific and the ACPI folks will have to fill in my knowledge gaps for their platforms.


power management timer wake up idle suspend


Leave a private comment to organizers about this proposal