Re: [GIT PULL] KVM: x86: PMU changes for 6.4

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Apr 24, 2023 at 7:35 PM Sean Christopherson <seanjc@xxxxxxxxxx> wrote:
>
> KVM x86/pmu changes for 6.4.  Hiding in the pile of selftests changes are a
> a handful of small-but-important fixes.
>
> Note, this superficially conflicts with the PRED_CMD/FLUSH_CMD changes
> sitting in kvm/next due to "KVM: VMX: Refactor intel_pmu_{g,}set_msr() to
> align with other helpers".  The resolution I have been using when preparing
> kvm-x86/next for linux-next is to replace a "return 0" with a "break".

Yup, figured out the same. Pulled (put not pushed yet), thanks.

Paolo

> The following changes since commit d8708b80fa0e6e21bc0c9e7276ad0bccef73b6e7:
>
>   KVM: Change return type of kvm_arch_vm_ioctl() to "int" (2023-03-16 10:18:07 -0400)
>
> are available in the Git repository at:
>
>   https://github.com/kvm-x86/linux.git tags/kvm-x86-pmu-6.4
>
> for you to fetch changes up to 457bd7af1a17182e7f1f97eeb5d9107f8699e99d:
>
>   KVM: selftests: Test the PMU event "Instructions retired" (2023-04-14 13:21:38 -0700)
>
> ----------------------------------------------------------------
> KVM x86 PMU changes for 6.4:
>
>  - Disallow virtualizing legacy LBRs if architectural LBRs are available,
>    the two are mutually exclusive in hardware
>
>  - Disallow writes to immutable feature MSRs (notably PERF_CAPABILITIES)
>    after KVM_RUN, and overhaul the vmx_pmu_caps selftest to better
>    validate PERF_CAPABILITIES
>
>  - Apply PMU filters to emulated events and add test coverage to the
>    pmu_event_filter selftest
>
>  - Misc cleanups and fixes
>
> ----------------------------------------------------------------
> Aaron Lewis (5):
>       KVM: x86/pmu: Prevent the PMU from counting disallowed events
>       KVM: selftests: Add a common helper for the PMU event filter guest code
>       KVM: selftests: Add helpers for PMC asserts in PMU event filter test
>       KVM: selftests: Print detailed info in PMU event filter asserts
>       KVM: selftests: Test the PMU event "Instructions retired"
>
> Like Xu (4):
>       KVM: x86/pmu: Zero out pmu->all_valid_pmc_idx each time it's refreshed
>       KVM: x86/pmu: Rename pmc_is_enabled() to pmc_is_globally_enabled()
>       KVM: x86/pmu: Rewrite reprogram_counters() to improve performance
>       KVM: x86/pmu: Fix a typo in kvm_pmu_request_counter_reprogam()
>
> Mathias Krause (1):
>       KVM: x86: Shrink struct kvm_pmu
>
> Sean Christopherson (25):
>       KVM: x86/pmu: Disallow legacy LBRs if architectural LBRs are available
>       KVM: x86: Rename kvm_init_msr_list() to clarify it inits multiple lists
>       KVM: x86: Add a helper to query whether or not a vCPU has ever run
>       KVM: x86: Add macros to track first...last VMX feature MSRs
>       KVM: x86: Generate set of VMX feature MSRs using first/last definitions
>       KVM: selftests: Split PMU caps sub-tests to avoid writing MSR after KVM_RUN
>       KVM: x86: Disallow writes to immutable feature MSRs after KVM_RUN
>       KVM: x86/pmu: WARN and bug the VM if PMU is refreshed after vCPU has run
>       KVM: x86/pmu: Zero out LBR capabilities during PMU refresh
>       KVM: selftests: Move 0/initial value PERF_CAPS checks to dedicated sub-test
>       KVM: selftests: Assert that full-width PMC writes are supported if PDCM=1
>       KVM: selftests: Print out failing MSR and value in vcpu_set_msr()
>       KVM: selftests: Verify KVM preserves userspace writes to "durable" MSRs
>       KVM: selftests: Drop now-redundant checks on PERF_CAPABILITIES writes
>       KVM: selftests: Test all fungible features in PERF_CAPABILITIES
>       KVM: selftests: Test all immutable non-format bits in PERF_CAPABILITIES
>       KVM: selftests: Expand negative testing of guest writes to PERF_CAPABILITIES
>       KVM: selftests: Test post-KVM_RUN writes to PERF_CAPABILITIES
>       KVM: selftests: Drop "all done!" printf() from PERF_CAPABILITIES test
>       KVM: selftests: Refactor LBR_FMT test to avoid use of separate macro
>       KVM: selftests: Add negative testcase for PEBS format in PERF_CAPABILITIES
>       KVM: selftests: Verify LBRs are disabled if vPMU is disabled
>       KVM: VMX: Refactor intel_pmu_{g,}set_msr() to align with other helpers
>       KVM: selftests: Use error codes to signal errors in PMU event filter test
>       KVM: selftests: Copy full counter values from guest in PMU event filter test
>
>  arch/x86/include/asm/kvm_host.h                    |   2 +-
>  arch/x86/kvm/cpuid.c                               |   2 +-
>  arch/x86/kvm/mmu/mmu.c                             |   2 +-
>  arch/x86/kvm/pmu.c                                 |  21 +-
>  arch/x86/kvm/pmu.h                                 |   2 +-
>  arch/x86/kvm/svm/pmu.c                             |   2 +-
>  arch/x86/kvm/svm/svm.c                             |   2 +-
>  arch/x86/kvm/vmx/pmu_intel.c                       | 135 ++++++-----
>  arch/x86/kvm/vmx/vmx.c                             |  16 +-
>  arch/x86/kvm/x86.c                                 | 102 ++++++---
>  arch/x86/kvm/x86.h                                 |  13 ++
>  .../selftests/kvm/include/x86_64/processor.h       |  41 +++-
>  .../selftests/kvm/x86_64/pmu_event_filter_test.c   | 252 ++++++++++++---------
>  .../selftests/kvm/x86_64/vmx_pmu_caps_test.c       | 248 ++++++++++++++++----
>  14 files changed, 565 insertions(+), 275 deletions(-)





[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux