[PATCH RESEND v2 0/8] x86/pmu: Corner cases fixes and optimization

From: Like Xu
Date: Tue Aug 23 2022 - 07:55:13 EST


Good well-designed tests can help us find more bugs, especially when
the test steps differ from the Linux kernel behaviour in terms of the
timing of access to virtualized hw resources.

In this patch series, there are three small optimization (006/007/008),
one hardware surprise (001), and most of these fixes have stepped
on my little toes.

Please feel free to run tests, add more or share comments.

Previous:
https://lore.kernel.org/kvm/20220721103549.49543-1-likexu@xxxxxxxxxxx/
https://lore.kernel.org/kvm/20220803130124.72340-1-likexu@xxxxxxxxxxx/

V2 -> V2 RESEND Changelog:
- The "pebs_capable" fix has been merged into tip/perf/tree tree;
- Move the other two AMD vPMU optimization here;

Like Xu (8):
perf/x86/core: Completely disable guest PEBS via guest's global_ctrl
KVM: x86/pmu: Avoid setting BIT_ULL(-1) to pmu->host_cross_mapped_mask
KVM: x86/pmu: Don't generate PEBS records for emulated instructions
KVM: x86/pmu: Avoid using PEBS perf_events for normal counters
KVM: x86/pmu: Defer reprogram_counter() to kvm_pmu_handle_event()
KVM: x86/pmu: Defer counter emulated overflow via pmc->stale_counter
KVM: x86/svm/pmu: Direct access pmu->gp_counter[] to implement
amd_*_to_pmc()
KVM: x86/svm/pmu: Rewrite get_gp_pmc_amd() for more counters
scalability

arch/x86/events/intel/core.c | 3 +-
arch/x86/include/asm/kvm_host.h | 6 +-
arch/x86/kvm/pmu.c | 47 ++++++++-----
arch/x86/kvm/pmu.h | 6 +-
arch/x86/kvm/svm/pmu.c | 116 +++++---------------------------
arch/x86/kvm/vmx/pmu_intel.c | 30 ++++-----
6 files changed, 73 insertions(+), 135 deletions(-)

--
2.37.2