Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 328705
b: refs/heads/master
c: 6bf9af4
h: refs/heads/master
i:
  328703: 45eabca
v: v3
  • Loading branch information
Rafael J. Wysocki committed Sep 3, 2012
1 parent 6c4ccf9 commit 1605df3
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 3 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 5b41147ceae44350f43f9b8124687d22bed2bbb9
refs/heads/master: 6bf9af464c4894e613567c0fb6559be67f31c88a
10 changes: 9 additions & 1 deletion trunk/Documentation/cpuidle/sysfs.txt
Original file line number Diff line number Diff line change
Expand Up @@ -76,9 +76,17 @@ total 0


* desc : Small description about the idle state (string)
* disable : Option to disable this idle state (bool)
* disable : Option to disable this idle state (bool) -> see note below
* latency : Latency to exit out of this idle state (in microseconds)
* name : Name of the idle state (string)
* power : Power consumed while in this idle state (in milliwatts)
* time : Total time spent in this idle state (in microseconds)
* usage : Number of times this state was entered (count)

Note:
The behavior and the effect of the disable variable depends on the
implementation of a particular governor. In the ladder governor, for
example, it is not coherent, i.e. if one is disabling a light state,
then all deeper states are disabled as well, but the disable variable
does not reflect it. Likewise, if one enables a deep state but a lighter
state still is disabled, then this has no effect.
6 changes: 5 additions & 1 deletion trunk/drivers/cpuidle/governors/ladder.c
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,8 @@ static int ladder_select_state(struct cpuidle_driver *drv,

/* consider promotion */
if (last_idx < drv->state_count - 1 &&
!drv->states[last_idx + 1].disabled &&
!dev->states_usage[last_idx + 1].disable &&
last_residency > last_state->threshold.promotion_time &&
drv->states[last_idx + 1].exit_latency <= latency_req) {
last_state->stats.promotion_count++;
Expand All @@ -100,7 +102,9 @@ static int ladder_select_state(struct cpuidle_driver *drv,

/* consider demotion */
if (last_idx > CPUIDLE_DRIVER_STATE_START &&
drv->states[last_idx].exit_latency > latency_req) {
(drv->states[last_idx].disabled ||
dev->states_usage[last_idx].disable ||
drv->states[last_idx].exit_latency > latency_req)) {
int i;

for (i = last_idx - 1; i > CPUIDLE_DRIVER_STATE_START; i--) {
Expand Down

0 comments on commit 1605df3

Please sign in to comment.