v2 -> v3 Changelog: - Add new testcases to cover Intel Arch PMU Version 1; - Add new testcases to cover AMD PMU (Before Zen4); - Fix multiple_many() in the patch 2/5; - Move check_emulated_instr() into check_counters(); - Fix some report_prefix issues; - Add PDCM check before accessing PERF_CAP register; - Fix testing Intel LBR on AMD; v2: https://lore.kernel.org/kvm/20220816080909.90622-1-likexu@xxxxxxxxxxx/ v1 -> v2 Changelog: - Introduce __start_event() and multiple_many() for readability; (Sean) - Move PEBS testcases to this patch set for easier tracking; - Create vPMU testcase group as more related tests are coming; Like Xu (13): x86/pmu: Introduce __start_event() to drop all of the manual zeroing x86/pmu: Introduce multiple_{one, many}() to improve readability x86/pmu: Reset the expected count of the fixed counter 0 when i386 x86/pmu: Add tests for Intel Processor Event Based Sampling (PEBS) x86: create pmu group for quick pmu-scope testing x86/pmu: Test emulation instructions on full-width counters x86/pmu: Pop up FW prefix to avoid out-of-context propagation x86/pmu: Add PDCM check before accessing PERF_CAP register. x86/pmu: Report SKIP when testing Intel LBR on AMD platforms x86/pmu: Update testcases to cover Intel Arch PMU Version 1 x86/pmu: Report SKIP when testing PMU on AMD platforms x86/pmu: Add assignment framework for Intel-specific HW resources x86/pmu: Update testcases to cover AMD PMU lib/x86/msr.h | 18 ++ lib/x86/processor.h | 32 ++- x86/Makefile.x86_64 | 1 + x86/pmu.c | 304 ++++++++++++++++++--------- x86/pmu_lbr.c | 2 +- x86/pmu_pebs.c | 486 ++++++++++++++++++++++++++++++++++++++++++++ x86/unittests.cfg | 10 + 7 files changed, 758 insertions(+), 95 deletions(-) create mode 100644 x86/pmu_pebs.c -- 2.37.2