From 53bf06f4d8930eef616f26c2d744b9a10518d1b7 Mon Sep 17 00:00:00 2001 From: Glauber Costa <glommer@redhat.com> Date: Thu, 29 Jan 2009 12:39:22 -0500 Subject: [PATCH 9/9] Disable kvmclock for non constant tsc cpus. Currently, this code path is posing us big troubles, and we won't have a decent patch in time. So, temporarily disable it. See: https://bugzilla.redhat.com/475598 There's a module parameter for the adventurous who want to force it. Signed-off-by: Glauber Costa <glommer@redhat.com> Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com> Signed-off-by: Mark McLoughlin <markmc@redhat.com> --- arch/x86/kvm/x86.c | 7 ++++++- 1 files changed, 6 insertions(+), 1 deletions(-) diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c index fc198e8..7b796a5 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c @@ -957,6 +957,9 @@ out: return r; } +static int force_kvmclock = 0; +module_param(force_kvmclock, bool, 0644); + int kvm_dev_ioctl_check_extension(long ext) { int r; @@ -967,7 +970,6 @@ int kvm_dev_ioctl_check_extension(long ext) case KVM_CAP_MMU_SHADOW_CACHE_CONTROL: case KVM_CAP_SET_TSS_ADDR: case KVM_CAP_EXT_CPUID: - case KVM_CAP_CLOCKSOURCE: case KVM_CAP_PIT: case KVM_CAP_NOP_IO_DELAY: case KVM_CAP_MP_STATE: @@ -992,6 +994,9 @@ int kvm_dev_ioctl_check_extension(long ext) case KVM_CAP_IOMMU: r = iommu_found(); break; + case KVM_CAP_CLOCKSOURCE: + r = force_kvmclock || boot_cpu_has(X86_FEATURE_CONSTANT_TSC); + break; default: r = 0; break; -- 1.6.1