mwait-idle: support for Intel Xeon Phi Processor x200 Product Family
authorDasaratharaman Chandramouli <dasaratharaman.chandramouli@intel.com>
Fri, 8 Apr 2016 20:32:36 +0000 (22:32 +0200)
committerJan Beulich <jbeulich@suse.com>
Fri, 8 Apr 2016 20:32:36 +0000 (22:32 +0200)
Enables "Intel(R) Xeon Phi(TM) Processor x200 Product Family" support,
formerly code-named KNL. It is based on modified Intel Atom Silvermont
microarchitecture.

Signed-off-by: Dasaratharaman Chandramouli <dasaratharaman.chandramouli@intel.com>
[micah.barany@intel.com: adjusted values of residency and latency]
Signed-off-by: Micah Barany <micah.barany@intel.com>
[Linux commit: 281baf7a702693deaa45c98ef0c5161006b48257]
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
xen/arch/x86/cpu/mwait-idle.c

index 9e193155caa18befdccbde7f06fe67c8a1ddb87f..6e65e38ea3eea6b5d7af951e7e50e951a309a557 100644 (file)
@@ -574,6 +574,22 @@ static const struct cpuidle_state avn_cstates[] = {
        {}
 };
 
+static const struct cpuidle_state knl_cstates[] = {
+       {
+               .name = "C1-KNL",
+               .flags = MWAIT2flg(0x00),
+               .exit_latency = 1,
+               .target_residency = 2,
+       },
+       {
+               .name = "C6-KNL",
+               .flags = MWAIT2flg(0x10) | CPUIDLE_FLAG_TLB_FLUSHED,
+               .exit_latency = 120,
+               .target_residency = 500,
+       },
+       {}
+};
+
 static void mwait_idle(void)
 {
        unsigned int cpu = smp_processor_id();
@@ -746,6 +762,10 @@ static const struct idle_cpu idle_cpu_avn = {
        .disable_promotion_to_c1e = 1,
 };
 
+static const struct idle_cpu idle_cpu_knl = {
+       .state_table = knl_cstates,
+};
+
 #define ICPU(model, cpu) \
     { X86_VENDOR_INTEL, 6, model, X86_FEATURE_MONITOR, \
         &idle_cpu_##cpu}
@@ -778,6 +798,7 @@ static const struct x86_cpu_id intel_idle_ids[] __initconst = {
        ICPU(0x56, bdw),
        ICPU(0x4e, skl),
        ICPU(0x5e, skl),
+       ICPU(0x57, knl),
        {}
 };