[tip:x86/platform] x86/vmware: Use tsc_khz value for calibrate_cpu()
From: tip-bot for Alexey Makhalov
Date: Sun Oct 30 2016 - 21:17:41 EST
Commit-ID: 687bca8d664ac9b098005b57846773eb62040ae0
Gitweb: http://git.kernel.org/tip/687bca8d664ac9b098005b57846773eb62040ae0
Author: Alexey Makhalov <amakhalov@xxxxxxxxxx>
AuthorDate: Fri, 28 Oct 2016 00:54:30 -0700
Committer: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
CommitDate: Sun, 30 Oct 2016 08:57:07 +0100
x86/vmware: Use tsc_khz value for calibrate_cpu()
Commit aa297292d708 ("x86/tsc: Enumerate SKL cpu_khz and tsc_khz via
CPUID") separated the calibration mechanisms for cpu_khz and tsc_khz.
Since the vmware hypervisor provides a constant frequency TSC to the guest,
this change can lead to divergence between the tsc and the cpu frequency
after vmotion, which might confuse the user.
Solve this by overriding the x86 platform cpu calibration callback with the
vmware specific tsc calibration function.
Signed-off-by: Alexey Makhalov <amakhalov@xxxxxxxxxx>
Acked-by: Alok N Kataria <akataria@xxxxxxxxxx>
Cc: linux-doc@xxxxxxxxxxxxxxx
Cc: pv-drivers@xxxxxxxxxx
Cc: corbet@xxxxxxx
Cc: virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx
Link: http://lkml.kernel.org/r/20161028075432.90579-2-amakhalov@xxxxxxxxxx
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
---
arch/x86/kernel/cpu/vmware.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/x86/kernel/cpu/vmware.c b/arch/x86/kernel/cpu/vmware.c
index 4e34da4b..480790f 100644
--- a/arch/x86/kernel/cpu/vmware.c
+++ b/arch/x86/kernel/cpu/vmware.c
@@ -83,6 +83,7 @@ static void __init vmware_platform_setup(void)
vmware_tsc_khz = tsc_khz;
x86_platform.calibrate_tsc = vmware_get_tsc_khz;
+ x86_platform.calibrate_cpu = vmware_get_tsc_khz;
#ifdef CONFIG_X86_LOCAL_APIC
/* Skip lapic calibration since we know the bus frequency. */