Context |
Check |
Description |
snowpatch_ozlabs/apply_patch |
warning
|
Failed to apply on branch powerpc/merge (14fd53d1e5ee7350564cac75e336f8c0dea13bc9)
|
snowpatch_ozlabs/apply_patch |
warning
|
Failed to apply on branch powerpc/next (0c83b277ada72b585e6a3e52b067669df15bcedb)
|
snowpatch_ozlabs/apply_patch |
success
|
Successfully applied on branch linus/master (4f30a60aa78410496e5ffe632a371c00f0d83a8d)
|
snowpatch_ozlabs/checkpatch |
success
|
total: 0 errors, 0 warnings, 0 checks, 42 lines checked
|
snowpatch_ozlabs/needsstable |
success
|
Patch has no Fixes tags
|
@@ -86,19 +86,26 @@ static void check_and_cede_processor(void)
}
}
+#define NR_DEDICATED_STATES 2 /* snooze, CEDE */
+
+u8 cede_latency_hint[NR_DEDICATED_STATES];
static int dedicated_cede_loop(struct cpuidle_device *dev,
struct cpuidle_driver *drv,
int index)
{
+ u8 old_latency_hint;
pseries_idle_prolog();
get_lppaca()->donate_dedicated_cpu = 1;
+ old_latency_hint = get_lppaca()->cede_latency_hint;
+ get_lppaca()->cede_latency_hint = cede_latency_hint[index];
HMT_medium();
check_and_cede_processor();
local_irq_disable();
get_lppaca()->donate_dedicated_cpu = 0;
+ get_lppaca()->cede_latency_hint = old_latency_hint;
pseries_idle_epilog();
@@ -130,7 +137,7 @@ static int shared_cede_loop(struct cpuidle_device *dev,
/*
* States for dedicated partition case.
*/
-static struct cpuidle_state dedicated_states[] = {
+static struct cpuidle_state dedicated_states[NR_DEDICATED_STATES] = {
{ /* Snooze */
.name = "snooze",
.desc = "snooze",
@@ -233,7 +240,7 @@ static int pseries_idle_probe(void)
max_idle_state = ARRAY_SIZE(shared_states);
} else {
cpuidle_state_table = dedicated_states;
- max_idle_state = ARRAY_SIZE(dedicated_states);
+ max_idle_state = NR_DEDICATED_STATES;
}
} else
return -ENODEV;