arch/x86/include/asm/kvm_host.h | 6 +- arch/x86/kvm/pmu.c | 44 +++++++----- arch/x86/kvm/pmu.h | 6 +- arch/x86/kvm/svm/pmu.c | 121 ++++++-------------------------- arch/x86/kvm/vmx/pmu_intel.c | 36 +++++----- 5 files changed, 75 insertions(+), 138 deletions(-)
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.
Please feel free to run tests, add more or share comments.
Previous:
https://lore.kernel.org/kvm/20220823093221.38075-1-likexu@tencent.com/
V2 RESEND -> V3 Changelog:
- Post perf change as a separate patch to the perf folks; (Sean)
- Rewrite the deferred logic using imperative mood; (Sean)
- Drop some useless comment; (Sean)
- Rename __reprogram_counter() to kvm_pmu_request_counter_reprogam(); (Sean)
- Replace a play-by-play of the code changes with a high level description; (); (Sean)
- Rename pmc->stale_counter to pmc->prev_counter; (Sean)
- Drop an unnecessary check about pmc->prev_counter; (Sean)
- Simply the code about "CTLn is even, CTRn is odd"; (Sean)
- Refine commit message to avoid pronouns; (Sean)
Like Xu (7):
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->prev_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/include/asm/kvm_host.h | 6 +-
arch/x86/kvm/pmu.c | 44 +++++++-----
arch/x86/kvm/pmu.h | 6 +-
arch/x86/kvm/svm/pmu.c | 121 ++++++--------------------------
arch/x86/kvm/vmx/pmu_intel.c | 36 +++++-----
5 files changed, 75 insertions(+), 138 deletions(-)
--
2.37.3
On Wed, Aug 31, 2022, Like Xu wrote:
> Like Xu (7):
> 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->prev_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
With a few tweaks (will respond to individual patches), pushed everything except
the "Defer" patches to to branch `for_paolo/6.1` at:
https://github.com/sean-jc/linux.git
Unless you hear otherwise, it will make its way to kvm/queue "soon".
Regarding the "defer" patches, your patches are ok (with one or two tweaks), but
there are existing bugs that I believe will interact poorly with using reprogram_pmi
more agressively. Nothing major, but I'd prefer to get everything squared away
before merging, and definitely want your input on my proposed fixes. I'll post
the patches shortly.
On Thu, Sep 22, 2022, Sean Christopherson wrote: > Regarding the "defer" patches, your patches are ok (with one or two tweaks), but > there are existing bugs that I believe will interact poorly with using reprogram_pmi > more agressively. Nothing major, but I'd prefer to get everything squared away > before merging, and definitely want your input on my proposed fixes. I'll post > the patches shortly. I take that back, there are issues with deferred overflow handling. I'll follow-up in the patch.
A review reminder for shepherds. Thanks! On 31/8/2022 4:53 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. > > Please feel free to run tests, add more or share comments. > > Previous: > https://lore.kernel.org/kvm/20220823093221.38075-1-likexu@tencent.com/ > > V2 RESEND -> V3 Changelog: > - Post perf change as a separate patch to the perf folks; (Sean) > - Rewrite the deferred logic using imperative mood; (Sean) > - Drop some useless comment; (Sean) > - Rename __reprogram_counter() to kvm_pmu_request_counter_reprogam(); (Sean) > - Replace a play-by-play of the code changes with a high level description; (); (Sean) > - Rename pmc->stale_counter to pmc->prev_counter; (Sean) > - Drop an unnecessary check about pmc->prev_counter; (Sean) > - Simply the code about "CTLn is even, CTRn is odd"; (Sean) > - Refine commit message to avoid pronouns; (Sean) > > Like Xu (7): > 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->prev_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/include/asm/kvm_host.h | 6 +- > arch/x86/kvm/pmu.c | 44 +++++++----- > arch/x86/kvm/pmu.h | 6 +- > arch/x86/kvm/svm/pmu.c | 121 ++++++-------------------------- > arch/x86/kvm/vmx/pmu_intel.c | 36 +++++----- > 5 files changed, 75 insertions(+), 138 deletions(-) >
+ Jim for more comments if any. On 7/9/2022 5:52 pm, Like Xu wrote: > A review reminder for shepherds. Thanks! > > On 31/8/2022 4:53 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. >> >> Please feel free to run tests, add more or share comments. >> >> Previous: >> https://lore.kernel.org/kvm/20220823093221.38075-1-likexu@tencent.com/ >> >> V2 RESEND -> V3 Changelog: >> - Post perf change as a separate patch to the perf folks; (Sean) >> - Rewrite the deferred logic using imperative mood; (Sean) >> - Drop some useless comment; (Sean) >> - Rename __reprogram_counter() to kvm_pmu_request_counter_reprogam(); (Sean) >> - Replace a play-by-play of the code changes with a high level description; >> (); (Sean) >> - Rename pmc->stale_counter to pmc->prev_counter; (Sean) >> - Drop an unnecessary check about pmc->prev_counter; (Sean) >> - Simply the code about "CTLn is even, CTRn is odd"; (Sean) >> - Refine commit message to avoid pronouns; (Sean) >> >> Like Xu (7): >> 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->prev_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/include/asm/kvm_host.h | 6 +- >> arch/x86/kvm/pmu.c | 44 +++++++----- >> arch/x86/kvm/pmu.h | 6 +- >> arch/x86/kvm/svm/pmu.c | 121 ++++++-------------------------- >> arch/x86/kvm/vmx/pmu_intel.c | 36 +++++----- >> 5 files changed, 75 insertions(+), 138 deletions(-) >>
© 2016 - 2026 Red Hat, Inc.