KVM: selftests: Add negative testcase for PEBS format in PERF_CAPABILITIES
authorSean Christopherson <seanjc@google.com>
Sat, 11 Mar 2023 00:46:17 +0000 (16:46 -0800)
committerSean Christopherson <seanjc@google.com>
Thu, 6 Apr 2023 21:58:44 +0000 (14:58 -0700)
Expand the immutable features sub-test for PERF_CAPABILITIES to verify
KVM rejects any attempt to use a PEBS format other than the host's.

Link: https://lore.kernel.org/r/20230311004618.920745-21-seanjc@google.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
tools/testing/selftests/kvm/x86_64/vmx_pmu_caps_test.c

index 38aec88d733b62910237ab9d17b3e387735508ea..29aaa0419294a6308544b411c77983fef9f2efc0 100644 (file)
@@ -191,6 +191,16 @@ static void test_immutable_perf_capabilities(union perf_capabilities host_cap)
                            val.lbr_format, host_cap.lbr_format);
        }
 
+       /* Ditto for the PEBS format. */
+       for (val.pebs_format = 1; val.pebs_format; val.pebs_format++) {
+               if (val.pebs_format == host_cap.pebs_format)
+                       continue;
+
+               r = _vcpu_set_msr(vcpu, MSR_IA32_PERF_CAPABILITIES, val.capabilities);
+               TEST_ASSERT(!r, "Bad PEBS FMT = 0x%x didn't fail, host = 0x%x",
+                           val.pebs_format, host_cap.pebs_format);
+       }
+
        kvm_vm_free(vm);
 }