[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <1281986754.23253.32.camel@ank32.eng.vmware.com>
Date: Mon, 16 Aug 2010 12:25:54 -0700
From: Alok Kataria <akataria@...are.com>
To: "H. Peter Anvin" <hpa@...or.com>,
the arch/x86 maintainers <x86@...nel.org>
Cc: Greg KH <gregkh@...e.de>, greg@...ah.com, ksrinivasan@...ell.com,
LKML <linux-kernel@...r.kernel.org>
Subject: [Patch] Skip cpu_calibrate for kernel running under hypervisors.
Hi,
This is a trivial change to fix the cpu_khz value returned when running
on a virtualized environment. We have seen instances when the cpu_khz
value is off by couple of MHz's when running on VMware's platform on AMD
hardware.
--
Since the TSC frequency read from hypervisor is accurate for the guest, and
since the hypervisor will always clock the vcpu at the TSC frequency, there is
no need to calibrate it again. To avoid any calibration errors through
calibrate_cpu this patch skips calling calibrate_cpu for kernel running
under hypervisors.
Signed-off-by: Alok N Kataria <akataria@...are.com>
Cc: K. Y. Srinivasan <ksrinivasan@...ell.com>
Cc: Greg KH <greg@...ah.com>
Cc: H. Peter Anvin <hpa@...or.com>
Index: linux-x86-tree.git/arch/x86/kernel/tsc.c
===================================================================
--- linux-x86-tree.git.orig/arch/x86/kernel/tsc.c 2010-08-03 12:21:20.000000000 -0700
+++ linux-x86-tree.git/arch/x86/kernel/tsc.c 2010-08-13 15:07:08.000000000 -0700
@@ -927,7 +927,7 @@ void __init tsc_init(void)
}
if (cpu_has(&boot_cpu_data, X86_FEATURE_CONSTANT_TSC) &&
- (boot_cpu_data.x86_vendor == X86_VENDOR_AMD))
+ (boot_cpu_data.x86_vendor == X86_VENDOR_AMD) && !x86_hyper)
cpu_khz = calibrate_cpu();
printk("Detected %lu.%03lu MHz processor.\n",
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists