• Like Xu's avatar
    KVM: x86/pmu: Fix reserved bits for AMD PerfEvtSeln register · cb1d220d
    Like Xu authored
    If we run the following perf command in an AMD Milan guest:
    
      perf stat \
      -e cpu/event=0x1d0/ \
      -e cpu/event=0x1c7/ \
      -e cpu/umask=0x1f,event=0x18e/ \
      -e cpu/umask=0x7,event=0x18e/ \
      -e cpu/umask=0x18,event=0x18e/ \
      ./workload
    
    dmesg will report a #GP warning from an unchecked MSR access
    error on MSR_F15H_PERF_CTLx.
    
    This is because according to APM (Revision: 4.03) Figure 13-7,
    the bits [35:32] of AMD PerfEvtSeln register is a part of the
    event select encoding, which extends the EVENT_SELECT field
    from 8 bits to 12 bits.
    
    Opportunistically update pmu->reserved_bits for reserved bit 19.
    Reported-by: default avatarJim Mattson <jmattson@google.com>
    Fixes: ca724305 ("KVM: x86/vPMU: Implement AMD vPMU code for KVM")
    Signed-off-by: default avatarLike Xu <likexu@tencent.com>
    Message-Id: <20211118130320.95997-1-likexu@tencent.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    cb1d220d
pmu.c 7.95 KB