Re: [PATCH v2 0/7] KVM: x86/pmu: Fix some corner cases including Intel PEBS

From: Wanpeng Li
Date: Thu Aug 11 2022 - 03:10:49 EST


kindly ping, :)
On Tue, 2 Aug 2022 at 19:16, Like Xu <like.xu.linux@xxxxxxxxx> wrote:
>
> To catch up on the first -rc, ping beggarly and guiltily.
>
> On 21/7/2022 6:35 pm, Like Xu wrote:
> > 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.
> >
> > A new guest PEBS kvm-unit-test constructs a number of typical and
> > corner use cases to demonstrate how fragile the earlier PEBS
> > enabling patch set is. I prefer to reveal these flaws and fix them
> > myself before we receive complaints from projects that rely on it.
> >
> > In this patch series, there is one small optimization (006), one hardware
> > surprise (002), 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/20220713122507.29236-1-likexu@xxxxxxxxxxx/
> >
> > V1 -> V2 Changelog:
> > - For 3/7, use "hw_idx > -1" and add comment; (Sean)
> > - For 4/7, refine commit message and add comment; (Sean)
> > - For 6/7, inline reprogram_counter() and restrict pmc->current_config;
> >
> > Like Xu (7):
> > perf/x86/core: Update x86_pmu.pebs_capable for ICELAKE_{X,D}
> > 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
> >
> > arch/x86/events/intel/core.c | 4 ++-
> > 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 | 2 +-
> > arch/x86/kvm/vmx/pmu_intel.c | 30 ++++++++++-----------
> > 6 files changed, 58 insertions(+), 37 deletions(-)
> >