[PATCH] Add additional Intel CPU models to crystal_khz whitelist

From: Prarit Bhargava
Date: Fri Sep 09 2016 - 11:18:13 EST


In commit aa297292d708 ("x86/tsc: Enumerate SKL cpu_khz and tsc_khz via
CPUID"), the kernel added support for Intel processors which had
a different CPU base-frequency and TSC frequency.

The turbostat utility has been updated with KBL and SKX processors,
and they should also be added to the crystal_khz white list.

For example, on KBL (0x8E) native_calibrate_tsc() returns 0 MHz for
tsc_khz and after this patch native_calibrate_tsc() returns 1608 MHz.

Signed-off-by: Prarit Bhargava <prarit@xxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Ingo Molnar <mingo@xxxxxxxxxx>
Cc: "H. Peter Anvin" <hpa@xxxxxxxxx>
Cc: x86@xxxxxxxxxx
Cc: Rafael Aquini <aquini@xxxxxxxxxx>
Cc: "Peter Zijlstra (Intel)" <peterz@xxxxxxxxxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxx>
Cc: Len Brown <len.brown@xxxxxxxxx>
Cc: lenb@xxxxxxxxxx
---
arch/x86/kernel/tsc.c | 8 ++++++++
1 file changed, 8 insertions(+)

diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
index 78b9cb5a26af..421ddbbf3fc8 100644
--- a/arch/x86/kernel/tsc.c
+++ b/arch/x86/kernel/tsc.c
@@ -688,11 +688,19 @@ unsigned long native_calibrate_tsc(void)
switch (boot_cpu_data.x86_model) {
case 0x4E: /* SKL */
case 0x5E: /* SKL */
+ case 0x8E: /* KBL */
+ case 0x9E: /* KBL */
crystal_khz = 24000; /* 24.0 MHz */
break;
+ case 0x55: /* SKX */
+ crystal_khz = 25000; /* 25.0 MHz */
+ break;
case 0x5C: /* BXT */
crystal_khz = 19200; /* 19.2 MHz */
break;
+ default:
+ crystal_khz = 0;
+
}
}

--
1.7.9.3