kvm: i386: require KVM_CAP_ADJUST_CLOCK
authorPaolo Bonzini <pbonzini@redhat.com>
Tue, 17 Oct 2023 12:30:44 +0000 (14:30 +0200)
committerPaolo Bonzini <pbonzini@redhat.com>
Wed, 25 Oct 2023 17:53:38 +0000 (19:53 +0200)
This was introduced in KVM in Linux 2.6.33, we can require it
unconditionally.  KVM_CLOCK_TSC_STABLE was only added in Linux 4.9,
for now do not require it (though it would allow the removal of some
pretty yucky code).

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
hw/i386/kvm/clock.c
target/i386/kvm/kvm.c
target/i386/kvm/kvm_i386.h

index f25977d3f68075d54981633a02e2759cda7393f2..e756b0aa43f6d5b07d71be13e2a6236632443290 100644 (file)
@@ -333,10 +333,6 @@ void kvmclock_create(bool create_always)
     X86CPU *cpu = X86_CPU(first_cpu);
 
     assert(kvm_enabled());
-    if (!kvm_has_adjust_clock()) {
-        return;
-    }
-
     if (create_always ||
         cpu->env.features[FEAT_KVM] & ((1ULL << KVM_FEATURE_CLOCKSOURCE) |
                                        (1ULL << KVM_FEATURE_CLOCKSOURCE2))) {
index 42574c2df8972ab82c356732b29c1d33d355287f..d4bf327fa6fd9144a04e6dd150e3f7cee7a0214b 100644 (file)
@@ -98,6 +98,7 @@ const KVMCapabilityInfo kvm_arch_required_capabilities[] = {
     KVM_CAP_INFO(VCPU_EVENTS),
     KVM_CAP_INFO(X86_ROBUST_SINGLESTEP),
     KVM_CAP_INFO(MCE),
+    KVM_CAP_INFO(ADJUST_CLOCK),
     KVM_CAP_LAST_INFO
 };
 
@@ -177,11 +178,6 @@ bool kvm_has_adjust_clock_stable(void)
     return (ret & KVM_CLOCK_TSC_STABLE);
 }
 
-bool kvm_has_adjust_clock(void)
-{
-    return kvm_check_extension(kvm_state, KVM_CAP_ADJUST_CLOCK);
-}
-
 bool kvm_has_exception_payload(void)
 {
     return has_exception_payload;
index 55d4e68c3427e3f6ffc186065d5c0c57336823cd..7e60ea4f23f2934697b768b5355a2c0dc899524d 100644 (file)
@@ -50,7 +50,6 @@ void kvm_request_xsave_components(X86CPU *cpu, uint64_t mask);
 
 #ifdef CONFIG_KVM
 
-bool kvm_has_adjust_clock(void);
 bool kvm_has_adjust_clock_stable(void);
 bool kvm_has_exception_payload(void);
 void kvm_synchronize_all_tsc(void);