Message ID | 20240517173926.965351-14-seanjc@google.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | KVM: x86: CPUID overhaul, fixes, and caching | expand |
On Fri, 2024-05-17 at 10:38 -0700, Sean Christopherson wrote: > Actually check for KVM support for disabling HLT-exiting instead of > effectively checking that KVM_CAP_X86_DISABLE_EXITS is #defined to a > non-zero value, and convert the TEST_REQUIRE() to a simple return so > that only the sub-test is skipped if HLT-exiting is mandatory. > > The goof has likely gone unnoticed because all x86 CPUs support disabling > HLT-exiting, only systems with the opt-in mitigate_smt_rsb KVM module > param disallow HLT-exiting. > > Signed-off-by: Sean Christopherson <seanjc@google.com> > --- > tools/testing/selftests/kvm/x86_64/kvm_pv_test.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/tools/testing/selftests/kvm/x86_64/kvm_pv_test.c b/tools/testing/selftests/kvm/x86_64/kvm_pv_test.c > index 78878b3a2725..2aee93108a54 100644 > --- a/tools/testing/selftests/kvm/x86_64/kvm_pv_test.c > +++ b/tools/testing/selftests/kvm/x86_64/kvm_pv_test.c > @@ -140,10 +140,11 @@ static void test_pv_unhalt(void) > struct kvm_cpuid_entry2 *ent; > u32 kvm_sig_old; > > + if (!(kvm_check_cap(KVM_CAP_X86_DISABLE_EXITS) & KVM_X86_DISABLE_EXITS_HLT)) > + return; > + > pr_info("testing KVM_FEATURE_PV_UNHALT\n"); > > - TEST_REQUIRE(KVM_CAP_X86_DISABLE_EXITS); > - > /* KVM_PV_UNHALT test */ > vm = vm_create_with_one_vcpu(&vcpu, guest_main); > vcpu_set_cpuid_feature(vcpu, X86_FEATURE_KVM_PV_UNHALT); Reviewed-by: Maxim Levitsky <mlevitsk@redhat.com> Best regards, Maxim Levitsky
diff --git a/tools/testing/selftests/kvm/x86_64/kvm_pv_test.c b/tools/testing/selftests/kvm/x86_64/kvm_pv_test.c index 78878b3a2725..2aee93108a54 100644 --- a/tools/testing/selftests/kvm/x86_64/kvm_pv_test.c +++ b/tools/testing/selftests/kvm/x86_64/kvm_pv_test.c @@ -140,10 +140,11 @@ static void test_pv_unhalt(void) struct kvm_cpuid_entry2 *ent; u32 kvm_sig_old; + if (!(kvm_check_cap(KVM_CAP_X86_DISABLE_EXITS) & KVM_X86_DISABLE_EXITS_HLT)) + return; + pr_info("testing KVM_FEATURE_PV_UNHALT\n"); - TEST_REQUIRE(KVM_CAP_X86_DISABLE_EXITS); - /* KVM_PV_UNHALT test */ vm = vm_create_with_one_vcpu(&vcpu, guest_main); vcpu_set_cpuid_feature(vcpu, X86_FEATURE_KVM_PV_UNHALT);
Actually check for KVM support for disabling HLT-exiting instead of effectively checking that KVM_CAP_X86_DISABLE_EXITS is #defined to a non-zero value, and convert the TEST_REQUIRE() to a simple return so that only the sub-test is skipped if HLT-exiting is mandatory. The goof has likely gone unnoticed because all x86 CPUs support disabling HLT-exiting, only systems with the opt-in mitigate_smt_rsb KVM module param disallow HLT-exiting. Signed-off-by: Sean Christopherson <seanjc@google.com> --- tools/testing/selftests/kvm/x86_64/kvm_pv_test.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)