File 54744659-x86-cpuidle-don-t-count-C1-multiple-times.patch of Package xen.481
# Commit 0aabd10525326edfe5098c2ec5bfe05db7732c32
# Date 2014-11-25 10:05:29 +0100
# Author Jan Beulich <jbeulich@suse.com>
# Committer Jan Beulich <jbeulich@suse.com>
x86/cpuidle: don't count C1 multiple times
Commit 4ca6f9f0 ("x86/cpuidle: publish new states only after fully
initializing them") resulted in the state counter to be incremented
for C1 despite that using a fixed table entry (and the statically
initialized counter value already accounting for it and C0).
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
--- a/xen/arch/x86/acpi/cpu_idle.c
+++ b/xen/arch/x86/acpi/cpu_idle.c
@@ -964,7 +964,7 @@ static void set_cx(
cx->target_residency = cx->latency * latency_factor;
smp_wmb();
- acpi_power->count++;
+ acpi_power->count += (cx->type != ACPI_STATE_C1);
if ( cx->type == ACPI_STATE_C1 || cx->type == ACPI_STATE_C2 )
acpi_power->safe_state = cx;
}