mwait-idle: update support for Silvermont Core in Baytrail SOC
authorLen Brown <len.brown@intel.com>
Wed, 20 May 2015 11:23:49 +0000 (13:23 +0200)
committerJan Beulich <jbeulich@suse.com>
Wed, 20 May 2015 11:23:49 +0000 (13:23 +0200)
On some Silvermont-Core/Baytrail-SOC systems,
C1E latency is higher than original specifications.
Although C1E is still enumerated in CPUID.MWAIT.EDX,
we delete the state from intel_idle to avoid latency impact.

Under some conditions, the latency of the C6N-BYT and C6S-BYT states
may exceed the specified values of 40 and 140 usec, respectively.
Increase those values to 300 and 500 usec; to assure
that the hardware does not violate constraints that may be set
by the Linux PM_QOS sub-system.

Also increase the C7-BYT target residency to 4.0 ms from 1.5 ms.

Signed-off-by: Len Brown <len.brown@intel.com>
[Linux commit d7ef76717322c8e2df7d4360b33faa9466cb1a0d]
Signed-off-by: Jan Beulich <jbeulich@suse.com>
xen/arch/x86/cpu/mwait-idle.c

index fbe05823ff178f317fb43b43f6c85a7178dafd11..bea31b187166cf42a6a0254cfc0c0e4b1be36e11 100644 (file)
@@ -195,29 +195,23 @@ static const struct cpuidle_state byt_cstates[] = {
                .exit_latency = 1,
                .target_residency = 1,
        },
-       {
-               .name = "C1E-BYT",
-               .flags = MWAIT2flg(0x01),
-               .exit_latency = 15,
-               .target_residency = 30,
-       },
        {
                .name = "C6N-BYT",
                .flags = MWAIT2flg(0x58) | CPUIDLE_FLAG_TLB_FLUSHED,
-               .exit_latency = 40,
+               .exit_latency = 300,
                .target_residency = 275,
        },
        {
                .name = "C6S-BYT",
                .flags = MWAIT2flg(0x52) | CPUIDLE_FLAG_TLB_FLUSHED,
-               .exit_latency = 140,
+               .exit_latency = 500,
                .target_residency = 560,
        },
        {
                .name = "C7-BYT",
                .flags = MWAIT2flg(0x60) | CPUIDLE_FLAG_TLB_FLUSHED,
                .exit_latency = 1200,
-               .target_residency = 1500,
+               .target_residency = 4000,
        },
        {
                .name = "C7S-BYT",