mbox series

[v2,0/3] Provide VM capability to disable PMU virtualization for individual VMs

Message ID 20220121002952.241015-1-daviddunn@google.com (mailing list archive)
Headers show
Series Provide VM capability to disable PMU virtualization for individual VMs | expand

Message

David Dunn Jan. 21, 2022, 12:29 a.m. UTC
This patchset adds a new per VM capability for configuring the x86 PMU.
Right now the only configuration is to disable the PMU for an entire VM.

Thanks to Sean and Like for great feedback on v1.

I've incorporated most of the comments.  Unfortunately I wasn't able to
get the AMD version to work by using pmu->version == 0 as a flag.  And
it makes the Intel pmu->refresh() logic complicated.  So this version
stays with the kvm->arch.enable_pmu boolean on each VM.

David Dunn (3):
  Provide VM capability to disable PMU virtualization for individual VMs
  selftests: introduce function to create test VM without vcpus.
  selftests: Verify disabling PMU via KVM_CAP_CONFIG_PMU

 arch/x86/include/asm/kvm_host.h               |  1 +
 arch/x86/kvm/svm/pmu.c                        |  2 +-
 arch/x86/kvm/vmx/pmu_intel.c                  |  2 +-
 arch/x86/kvm/x86.c                            | 12 +++++
 include/uapi/linux/kvm.h                      |  4 ++
 tools/include/uapi/linux/kvm.h                |  4 ++
 .../selftests/kvm/include/kvm_util_base.h     |  3 ++
 tools/testing/selftests/kvm/lib/kvm_util.c    | 48 ++++++++++++++-----
 .../kvm/x86_64/pmu_event_filter_test.c        | 35 ++++++++++++++
 9 files changed, 96 insertions(+), 15 deletions(-)