This is effectively v5 of Jinrong's series to add more PMU selftests, with a focus on architectural events, fixed counters, and CPUID configurations. I reworked things quite a bit, but the core concepts and what's being tested are more or less unchanged. The first three patches are minor fixes for KVM's handling of fixed counters. Patch 3 deals with an area in the PMU architecture that is somewhat open to interpretation, i.e. could probably use a bit of dicsussion to make sure we're all on the same page. Jinrong and/or Like, please double check and rerun everything, my confidence level with PMU stuff is still quite low relative to the rest of KVM. v4: https://lore.kernel.org/all/20230911114347.85882-1-cloudliang@xxxxxxxxxxx v3: https://lore.kernel.org/kvm/20230814115108.45741-1-cloudliang@xxxxxxxxxxx Jinrong Liang (7): KVM: selftests: Add vcpu_set_cpuid_property() to set properties KVM: selftests: Add pmu.h and lib/pmu.c for common PMU assets KVM: selftests: Test Intel PMU architectural events on gp counters KVM: selftests: Test Intel PMU architectural events on fixed counters KVM: selftests: Test consistency of CPUID with num of gp counters KVM: selftests: Test consistency of CPUID with num of fixed counters KVM: selftests: Add functional test for Intel's fixed PMU counters Sean Christopherson (6): KVM: x86/pmu: Don't allow exposing unsupported architectural events KVM: x86/pmu: Don't enumerate support for fixed counters KVM can't virtualize KVM: x86/pmu: Always treat Fixed counters as available when supported KVM: selftests: Drop the "name" param from KVM_X86_PMU_FEATURE() KVM: selftests: Extend {kvm,this}_pmu_has() to support fixed counters KVM: selftests: Extend PMU counters test to permute on vPMU version arch/x86/kvm/pmu.h | 4 + arch/x86/kvm/vmx/pmu_intel.c | 48 +- tools/testing/selftests/kvm/Makefile | 2 + tools/testing/selftests/kvm/include/pmu.h | 84 ++++ .../selftests/kvm/include/x86_64/processor.h | 67 ++- tools/testing/selftests/kvm/lib/pmu.c | 28 ++ .../selftests/kvm/lib/x86_64/processor.c | 12 +- .../selftests/kvm/x86_64/pmu_counters_test.c | 438 ++++++++++++++++++ .../kvm/x86_64/pmu_event_filter_test.c | 32 +- .../smaller_maxphyaddr_emulation_test.c | 2 +- 10 files changed, 669 insertions(+), 48 deletions(-) create mode 100644 tools/testing/selftests/kvm/include/pmu.h create mode 100644 tools/testing/selftests/kvm/lib/pmu.c create mode 100644 tools/testing/selftests/kvm/x86_64/pmu_counters_test.c base-commit: c076acf10c78c0d7e1aa50670e9cc4c91e8d59b4 -- 2.42.0.758.gaed0368e0e-goog