Gentle ping. Jinrong Liang <ljr.kernel@xxxxxxxxx> 于2023年9月11日周一 19:44写道: > > Hi, > > The KVM selftests show advantages over KUT in terms of finding defects through > flexible and varied guest settings from the KVM user space. > > This patchset tests whether the Intel vPMU works properly with different Intel > CPUID.0xA configurations. It also provides test scaffolding and a sufficient > number of PMU test cases to subsequently offer adequate code coverage of AMD > vPMU or Intel complex features, such as LBR or PEBS, in selftests. > > These patches have been tested and have passed all test cases. AMD related tests > will be completed in the future, please consider merge these patches before that. > > Any feedback or suggestions are greatly appreciated. > > Sincerely, > Jinrong Liang > > Changelog: > > v4: > - Rebased to e2013f46ee2e(tag: kvm-x86-next-2023.08.25) > - Separate AMD-related tests. > - Moved static arrays to a new file lib/pmu.c and used more descriptive names > like intel_pmu_arch_events, intel_pmu_fixed_pmc_events, and > amd_pmu_arch_events. (Sean) > - Clean up pmu_event_filter_test.c by including pmu.h and removing > unnecessary macros. > - Modified the "anti-feature" framework to extend this_pmu_has() and > kvm_pmu_has() functions. (Sean) > - Refactor guest_measure_loop() function to simplify logic and improve > readability. (Sean) > - Refactor guest_wr_and_rd_msrs() function to simplify logic and improve > readability. (Sean) > - Use GUEST_ASSERT_EQ() directly instead of passing the counter to ucall and > back to the host. (Sean) > - Refactor test_intel_oob_fixed_ctr() test method. (Sean) > - Avoid using half-baked helpers and optimize the code structure. (Sean) > - Update variable names for better readability and consistency. (Sean) > - Rename functions to better reflect their purpose. (Sean) > > v3: > https://lore.kernel.org/kvm/20230814115108.45741-1-cloudliang@xxxxxxxxxxx/T/ > > Jinrong Liang (9): > KVM: selftests: Add vcpu_set_cpuid_property() to set properties > KVM: selftests: Extend this_pmu_has() and kvm_pmu_has() to check arch > events > KVM: selftests: Add pmu.h for PMU events and common masks > 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: Test Intel supported fixed counters bit mask > KVM: selftests: Test consistency of PMU MSRs with Intel PMU version > > tools/testing/selftests/kvm/Makefile | 2 + > tools/testing/selftests/kvm/include/pmu.h | 96 ++++ > .../selftests/kvm/include/x86_64/processor.h | 42 +- > tools/testing/selftests/kvm/lib/pmu.c | 38 ++ > .../selftests/kvm/lib/x86_64/processor.c | 14 + > .../selftests/kvm/x86_64/pmu_counters_test.c | 431 ++++++++++++++++++ > .../kvm/x86_64/pmu_event_filter_test.c | 34 +- > 7 files changed, 623 insertions(+), 34 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: e2013f46ee2e721567783557c301e5c91d0b74ff > -- > 2.39.3 >