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@xxxxxxxxxx/ 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(-) -- 2.35.1.265.g69c8d7142f-goog