KVM: x86: Tell the guest we'll warn it about tsc stability
authorGlauber Costa <glommer@redhat.com>
Tue, 11 May 2010 16:17:46 +0000 (12:17 -0400)
committerAvi Kivity <avi@redhat.com>
Wed, 19 May 2010 08:41:06 +0000 (11:41 +0300)
This patch puts up the flag that tells the guest that we'll warn it
about the tsc being trustworthy or not. By now, we also say
it is not.

Signed-off-by: Glauber Costa <glommer@redhat.com>
Acked-by: Zachary Amsden <zamsden@redhat.com>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
arch/x86/kvm/x86.c

index 419c451..474a27f 100644 (file)
@@ -857,6 +857,8 @@ static void kvm_write_guest_time(struct kvm_vcpu *v)
        vcpu->hv_clock.system_time = ts.tv_nsec +
                                     (NSEC_PER_SEC * (u64)ts.tv_sec) + v->kvm->arch.kvmclock_offset;
 
        vcpu->hv_clock.system_time = ts.tv_nsec +
                                     (NSEC_PER_SEC * (u64)ts.tv_sec) + v->kvm->arch.kvmclock_offset;
 
+       vcpu->hv_clock.flags = 0;
+
        /*
         * The interface expects us to write an even number signaling that the
         * update is finished. Since the guest won't see the intermediate
        /*
         * The interface expects us to write an even number signaling that the
         * update is finished. Since the guest won't see the intermediate
@@ -1984,7 +1986,8 @@ static void do_cpuid_ent(struct kvm_cpuid_entry2 *entry, u32 function,
        case KVM_CPUID_FEATURES:
                entry->eax = (1 << KVM_FEATURE_CLOCKSOURCE) |
                             (1 << KVM_FEATURE_NOP_IO_DELAY) |
        case KVM_CPUID_FEATURES:
                entry->eax = (1 << KVM_FEATURE_CLOCKSOURCE) |
                             (1 << KVM_FEATURE_NOP_IO_DELAY) |
-                            (1 << KVM_FEATURE_CLOCKSOURCE2);
+                            (1 << KVM_FEATURE_CLOCKSOURCE2) |
+                            (1 << KVM_FEATURE_CLOCKSOURCE_STABLE_BIT);
                entry->ebx = 0;
                entry->ecx = 0;
                entry->edx = 0;
                entry->ebx = 0;
                entry->ecx = 0;
                entry->edx = 0;