kernel-ark/drivers/cpuidle
Youquan Song e11538d1f0 cpuidle: Quickly notice prediction failure in general case
The prediction for future is difficult and when the cpuidle governor prediction
fails and govenor possibly choose the shallower C-state than it should. How to
quickly notice and find the failure becomes important for power saving.

The patch extends to general case that prediction logic get a small predicted
residency, so it choose a shallow C-state though the expected residency is large
. Once the prediction will be fail, the CPU will keep staying at shallow C-state
for a long time. Acutally, the CPU has change enter into deep C-state.
So when the expected residency is long enough but governor choose a shallow
C-state, an timer will be added in order to monitor if the prediction failure.

When C-state is waken up prior to the adding timer, the timer will be cancelled
initiatively. When the timer is triggered and menu governor will quickly notice
prediction failure and re-evaluates deeper C-states possibility.

Signed-off-by: Rik van Riel <riel@redhat.com>
Signed-off-by: Youquan Song <youquan.song@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2012-11-15 00:34:20 +01:00
..
governors cpuidle: Quickly notice prediction failure in general case 2012-11-15 00:34:20 +01:00
coupled.c cpuidle: Prevent null pointer dereference in cpuidle_coupled_cpu_notify 2012-08-17 19:37:08 +02:00
cpuidle.c cpuidle / sysfs: move kobj initialization in the syfs file 2012-11-15 00:34:19 +01:00
cpuidle.h cpuidle / sysfs: change function parameter 2012-11-15 00:34:19 +01:00
driver.c cpuidle: rename function name "__cpuidle_register_driver", v2 2012-09-22 00:38:32 +02:00
governor.c cpuidle: create bootparam "cpuidle.off=1" 2011-08-03 19:06:36 -04:00
Kconfig cpuidle: add support for states that affect multiple cpus 2012-06-02 00:49:09 -04:00
Makefile cpuidle: add support for states that affect multiple cpus 2012-06-02 00:49:09 -04:00
sysfs.c cpuidle / sysfs: move kobj initialization in the syfs file 2012-11-15 00:34:19 +01:00