mbox series

[v7,0/3] KVM: x86: Provide per VM capability for disabling PMU virtualization

Message ID 20220215014806.4102669-1-daviddunn@google.com (mailing list archive)
Headers show
Series KVM: x86: Provide per VM capability for disabling PMU virtualization | expand

Message

David Dunn Feb. 15, 2022, 1:48 a.m. UTC
Allow usermode to disable PMU virtualization on individual x86 VMs.
When disabled, the PMU is not accessible from the guest.

v6: https://lore.kernel.org/all/20220209172945.1495014-1-daviddunn@google.com/

v6 -> v7
 * Incorporating feedback from Sean.
 * Rephrased commit messages (borrowed from Sean).
 * Added locking around kvm->created_vcpus access.
 * Moved KVM_CAP_PMU_VALID_MASK out of user ABI headers.
 * Changed comments on vm_create_without_vcpus.
 * Directly check results in selftest TEST_ASSERT statements.

v5 -> v6
 * resolve minor conflicts that were queued after v5 was reviewed.

v4 -> v5
 * Remove automatic CPUID adjustment when PMU disabled.
 * Update documentation and changelog to reflect above.
 * Update documentation to document arg[0] and return values.

David Dunn (3):
  KVM: x86: Provide per VM capability for disabling PMU virtualization
  KVM: selftests: Carve out helper to create "default" VM without vCPUs
  KVM: selftests: Verify disabling PMU virtualization via
    KVM_CAP_CONFIG_PMU

 Documentation/virt/kvm/api.rst                | 22 ++++++++++++
 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                            | 17 +++++++++
 include/uapi/linux/kvm.h                      |  3 ++
 tools/include/uapi/linux/kvm.h                |  3 ++
 .../selftests/kvm/include/kvm_util_base.h     |  3 ++
 tools/testing/selftests/kvm/lib/kvm_util.c    | 35 +++++++++++++++----
 .../kvm/x86_64/pmu_event_filter_test.c        | 33 +++++++++++++++++
 10 files changed, 113 insertions(+), 8 deletions(-)