]> git.karo-electronics.de Git - karo-tx-linux.git/commit
cpuidle: Quickly notice prediction failure in general case
authorYouquan Song <youquan.song@intel.com>
Fri, 26 Oct 2012 10:26:50 +0000 (12:26 +0200)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Fri, 26 Oct 2012 10:26:50 +0000 (12:26 +0200)
commitb9ecd23f030c94f8eb2c55338492c05e299db48b
treee924e68b84e70f4f2929a4310f188377afb08890
parentd980ce7288c145c4c83ad1e22161c3421d3c91a4
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>
drivers/cpuidle/governors/menu.c