]> git.karo-electronics.de Git - karo-tx-linux.git/commit
cpuidle: Quickly notice prediction failure in general case
authorYouquan Song <youquan.song@intel.com>
Wed, 24 Oct 2012 19:26:47 +0000 (21:26 +0200)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Wed, 24 Oct 2012 19:26:47 +0000 (21:26 +0200)
commite7f24e2d2c9f5e0ea3c96cb45b0ec55d7ecd5191
tree95acb258baa600adb04433ccb5b0d5ba40e715e0
parentbf736384a87b214709e3ef42102d80ff990174e2
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