KVM: VMX: enable X86_FEATURE_WAITPKG in KVM capabilities
authorMaxim Levitsky <mlevitsk@redhat.com>
Sat, 23 May 2020 16:14:54 +0000 (19:14 +0300)
committerPaolo Bonzini <pbonzini@redhat.com>
Wed, 27 May 2020 17:08:03 +0000 (13:08 -0400)
Even though we might not allow the guest to use WAITPKG's new
instructions, we should tell KVM that the feature is supported by the
host CPU.

Note that vmx_waitpkg_supported checks that WAITPKG _can_ be set in
secondary execution controls as specified by VMX capability MSR, rather
that we actually enable it for a guest.

Cc: stable@vger.kernel.org
Fixes: e69e72faa3a0 ("KVM: x86: Add support for user wait instructions")
Suggested-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Maxim Levitsky <mlevitsk@redhat.com>
Message-Id: <20200523161455.3940-2-mlevitsk@redhat.com>
Reviewed-by: Sean Christopherson <sean.j.christopherson@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/vmx/vmx.c

index 89c766f..9b63ac8 100644 (file)
@@ -7138,6 +7138,9 @@ static __init void vmx_set_cpu_caps(void)
        /* CPUID 0x80000001 */
        if (!cpu_has_vmx_rdtscp())
                kvm_cpu_cap_clear(X86_FEATURE_RDTSCP);
+
+       if (vmx_waitpkg_supported())
+               kvm_cpu_cap_check_and_set(X86_FEATURE_WAITPKG);
 }
 
 static void vmx_request_immediate_exit(struct kvm_vcpu *vcpu)