• Sean Christopherson's avatar
    KVM: VMX: Ignore guest CPUID for host userspace writes to DEBUGCTL · b333b8eb
    Sean Christopherson authored
    Ignore guest CPUID for host userspace writes to the DEBUGCTL MSR, KVM's
    ABI is that setting CPUID vs. state can be done in any order, i.e. KVM
    allows userspace to stuff MSRs prior to setting the guest's CPUID that
    makes the new MSR "legal".
    
    Keep the vmx_get_perf_capabilities() check for guest writes, even though
    it's technically unnecessary since the vCPU's PERF_CAPABILITIES is
    consulted when refreshing LBR support.  A future patch will clean up
    vmx_get_perf_capabilities() to avoid the RDMSR on every call, at which
    point the paranoia will incur no meaningful overhead.
    
    Note, prior to vmx_get_perf_capabilities() checking that the host fully
    supports LBRs via x86_perf_get_lbr(), KVM effectively relied on
    intel_pmu_lbr_is_enabled() to guard against host userspace enabling LBRs
    on platforms without full support.
    
    Fixes: c6462363 ("KVM: vmx/pmu: Add PMU_CAP_LBR_FMT check when guest LBR is enabled")
    Signed-off-by: default avatarSean Christopherson <seanjc@google.com>
    Message-Id: <20221006000314.73240-5-seanjc@google.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    b333b8eb
vmx.c 242 KB