This is intended as a replacement for commit 00590a384408 ("Revert "KVM: nVMX: Expose load IA32_PERF_GLOBAL_CTRL VM-{Entry,Exit} control""). The basic idea is the same, except instead of skipping the load if the desired value is the same, skip the load if the MSR doesn't exist. AFAICT, that plugs all holes where a mischievious usersepace can get KVM to WARN. I dropped the CR4 changes for now. I'd still prefer to give userspace control, but AFAIK it doesn't cause problems, yet... Paolo Bonzini (1): Revert "KVM: nVMX: Expose load IA32_PERF_GLOBAL_CTRL VM-{Entry,Exit} control" Sean Christopherson (4): Revert "Revert "KVM: nVMX: Expose load IA32_PERF_GLOBAL_CTRL VM-{Entry,Exit} control"" KVM: VMX: Mark all PERF_GLOBAL_(OVF)_CTRL bits reserved if there's no vPMU KVM: VMX: Add helper to check if the guest PMU has PERF_GLOBAL_CTRL KVM: nVMX: Attempt to load PERF_GLOBAL_CTRL on nVMX xfer iff it exists arch/x86/kvm/vmx/nested.c | 6 +++--- arch/x86/kvm/vmx/pmu_intel.c | 6 ++++-- arch/x86/kvm/vmx/vmx.h | 12 ++++++++++++ 3 files changed, 19 insertions(+), 5 deletions(-) base-commit: 1a4d88a361af4f2e91861d632c6a1fe87a9665c2 -- 2.37.1.359.gd136c6c3e2-goog