]> www.infradead.org Git - users/jedix/linux-maple.git/commit
x86/tsc: Enumerate SKL cpu_khz and tsc_khz via CPUID
authorLen Brown <len.brown@intel.com>
Fri, 17 Jun 2016 05:22:51 +0000 (01:22 -0400)
committerChuck Anderson <chuck.anderson@oracle.com>
Sun, 28 May 2017 02:43:51 +0000 (19:43 -0700)
commitc7ca2f1ead4a106d846fff626b7f9a06ff9e8729
tree4cd03abaa8db7be39b420c40ddddb18287402e6c
parente952d3ef89fea8cda7eb0e85d5a56de49b8e0e67
x86/tsc: Enumerate SKL cpu_khz and tsc_khz via CPUID

Skylake CPU base-frequency and TSC frequency may differ
by up to 2%.

Enumerate CPU and TSC frequencies separately, allowing
cpu_khz and tsc_khz to differ.

The existing CPU frequency calibration mechanism is unchanged.
However, CPUID extensions are preferred, when available.

CPUID.0x16 is preferred over MSR and timer calibration
for CPU frequency discovery.

CPUID.0x15 takes precedence over CPU-frequency
for TSC frequency discovery.

Signed-off-by: Len Brown <len.brown@intel.com>
Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/b27ec289fd005833b27d694d9c2dbb716c5cdff7.1466138954.git.len.brown@intel.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
(cherry picked from commit aa297292d708e89773b3b2cdcaf33f01bfa095d8)

Orabug: 25948913

Signed-off-by: Ethan Zhao <ethan.zhao@oracle.com>
Reviewed-by: Shan Hai <shan.hai@oracle.com>
arch/x86/include/asm/tsc.h
arch/x86/include/asm/x86_init.h
arch/x86/kernel/tsc.c
arch/x86/kernel/x86_init.c