kvm: vmx: Limit guest PMCs to those supported on the host
authorJim Mattson <jmattson@google.com>
Mon, 30 Sep 2019 23:38:54 +0000 (16:38 -0700)
committerPaolo Bonzini <pbonzini@redhat.com>
Tue, 1 Oct 2019 13:15:06 +0000 (15:15 +0200)
commite1fba49cc1e965a3dacd897367ba1e7b340cf0f4
treeebcdba25065b7eae3fd591016a9d40aa673ac963
parent833b45de69a6016c4b0cebe6765d526a31a81580
kvm: vmx: Limit guest PMCs to those supported on the host

KVM can only virtualize as many PMCs as the host supports.

Limit the number of generic counters and fixed counters to the number
of corresponding counters supported on the host, rather than to
INTEL_PMC_MAX_GENERIC and INTEL_PMC_MAX_FIXED, respectively.

Note that INTEL_PMC_MAX_GENERIC is currently 32, which exceeds the 18
contiguous MSR indices reserved by Intel for event selectors. Since
the existing code relies on a contiguous range of MSR indices for
event selectors, it can't possibly work for more than 18 general
purpose counters.

Fixes: f5132b01386b5a ("KVM: Expose a version 2 architectural PMU to a guests")
Signed-off-by: Jim Mattson <jmattson@google.com>
Reviewed-by: Marc Orr <marcorr@google.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/vmx/pmu_intel.c