Re: [PATCH] CPUidle: increment state counter for state actually entered
From: Kevin Hilman <hidden>
Date: 2008-10-01 11:00:15
Kevin Hilman [off-list ref] writes:
Currently, the count for state that the governor chooses is always incremented after the 'state_enter' hook is called. However, the target's enter hook may choose a different state based on BM activity or other factors. This patch does the accounting use 'dev->last_state' state instead of the governor-chosen state. If the target's enter_idle hook enters a different state than it was asked, it should update dev->last_state.
Oops, I sent this before I saw Venkatesh's earlier patch to do the same. Kevin
quoted hunk
--- drivers/cpuidle/cpuidle.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-)diff --git a/drivers/cpuidle/cpuidle.c b/drivers/cpuidle/cpuidle.c index 5ce07b5..c1294f5 100644 --- a/drivers/cpuidle/cpuidle.c +++ b/drivers/cpuidle/cpuidle.c@@ -67,10 +67,10 @@ static void cpuidle_idle_call(void) target_state = &dev->states[next_state]; /* enter the state and update stats */ - dev->last_residency = target_state->enter(dev, target_state); dev->last_state = target_state; - target_state->time += (unsigned long long)dev->last_residency; - target_state->usage++; + dev->last_residency = target_state->enter(dev, target_state); + dev->last_state->time += (unsigned long long)dev->last_residency; + dev->last_state->usage++; /* give the governor an opportunity to reflect on the outcome */ if (cpuidle_curr_governor->reflect)-- 1.6.0