x86: Add a synthetic TSC_RELIABLE feature bit.
authorAlok Kataria <akataria@vmware.com>
Fri, 31 Oct 2008 19:01:58 +0000 (12:01 -0700)
committerH. Peter Anvin <hpa@zytor.com>
Sun, 2 Nov 2008 01:58:01 +0000 (18:58 -0700)
commiteca0cd028bdf0f6aaceb0d023e9c7501079a7dda
tree13a3a723f4e286a617437442138f2a6130502142
parent88b094fb8d4fe43b7025ea8d487059e8813e02cd
x86: Add a synthetic TSC_RELIABLE feature bit.

Impact: Changes timebase calibration on Vmware.

Use the synthetic TSC_RELIABLE bit to workaround virtualization anomalies.

Virtual TSCs can be kept nearly in sync, but because the virtual TSC
offset is set by software, it's not perfect.  So, the TSC
synchronization test can fail. Even then the TSC can be used as a
clocksource since the VMware platform exports a reliable TSC to the
guest for timekeeping purposes. Use this bit to check if we need to
skip the TSC sync checks.

Along with this also set the CONSTANT_TSC bit when on VMware, since we
still want to use TSC as clocksource on VM running over hardware which
has unsynchronized TSC's (opteron's), since the hypervisor will take
care of providing consistent TSC to the guest.

Signed-off-by: Alok N Kataria <akataria@vmware.com>
Signed-off-by: Dan Hecht <dhecht@vmware.com>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
arch/x86/include/asm/vmware.h
arch/x86/kernel/cpu/hypervisor.c
arch/x86/kernel/cpu/vmware.c
arch/x86/kernel/tsc_sync.c