cpuidle p-state dependency investigation

Registered by Rob

This blueprint has been moved to JIRA: https://cards.linaro.org/browse/PMWG-258

In the cpuidle driver, the exit_latency value is used along with other data to determine which C-state the system will go into. But in reality, this exit_latency scales with the system clock frequency or p-state. This means the a constant exit_latency which is currently be used by most or all platforms is non-optimal. Using a constant value leads to either a worst case exit_latency being used which will sometimes unnecessarily prevent the system from entering the lowest level c-state, or if a non worst case constant exit_latency is used, it could cause a violation of the pm_qos limits for the CPU.

Further investigation will be done to determine the best implementation for a system that takes into account a dynamic exit_latency value (or any other dynamic values used by cpuidle).

Blueprint information

Amit Kucheria
Daniel Lezcano
Series goal:
Accepted for trunk
Not started
Milestone target:
milestone icon backlog
Completed by
Serge Broslavsky

Related branches



[amitk, 29/11/2012]: Daniel does this make sense to take on at this point? Or should we leave in backlog?

[daniel-lezcano, 25/03/2013]: the exit_latency has been provided by the cpuidle driver author. These measurements were done but I don't know in which context (w/o cpufreq, ondemand/performance/userspace/etc ...). It is probable, we have to recheck these exit latency values depending of the frequency.

[daniel-lezcano, 12/04/2013] : one solution would be to measure the exit latency for different states at different frequency in the kernel at boot time and use these measured values to fill the exit_latency. The cpufreq notifiers will be used in the cpuidle framework to change the exit_latency dynamically.

[daniel-lezcano, 17/04/2013] : the question is how do you measure the exit latency ?


Work Items

This blueprint contains Public information 
Everyone can see this information.