KVM: x86/pmu: Disallow legacy LBRs if architectural LBRs are available
[linux-block.git] / arch / x86 / kvm / vmx / vmx.c
index d7bf14abdba1df6e91df8e96e23b935fe788b896..c18f74899f011d5a75b3f7cecf6d69e6388154f6 100644 (file)
@@ -7793,9 +7793,11 @@ static u64 vmx_get_perf_capabilities(void)
        if (boot_cpu_has(X86_FEATURE_PDCM))
                rdmsrl(MSR_IA32_PERF_CAPABILITIES, host_perf_cap);
 
-       x86_perf_get_lbr(&lbr);
-       if (lbr.nr)
-               perf_cap |= host_perf_cap & PMU_CAP_LBR_FMT;
+       if (!cpu_feature_enabled(X86_FEATURE_ARCH_LBR)) {
+               x86_perf_get_lbr(&lbr);
+               if (lbr.nr)
+                       perf_cap |= host_perf_cap & PMU_CAP_LBR_FMT;
+       }
 
        if (vmx_pebs_supported()) {
                perf_cap |= host_perf_cap & PERF_CAP_PEBS_MASK;