Skip to content

Commit 3317c26

Browse files
Like XuPeter Zijlstra
authored andcommitted
perf/x86: Avoid touching LBR_TOS MSR for Arch LBR
The Architecture LBR does not have MSR_LBR_TOS (0x000001c9). In a guest that should support Architecture LBR, check_msr() will be a non-related check for the architecture MSR 0x0 (IA32_P5_MC_ADDR) that is also not supported by KVM. The failure will cause x86_pmu.lbr_nr = 0, thereby preventing the initialization of the guest Arch LBR. Fix it by avoiding this extraneous check in intel_pmu_init() for Arch LBR. Fixes: 47125db ("perf/x86/intel/lbr: Support Architectural LBR") Signed-off-by: Like Xu <like.xu@linux.intel.com> [peterz: simpler still] Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Link: https://lkml.kernel.org/r/20210430052247.3079672-1-like.xu@linux.intel.com
1 parent d07f6ca commit 3317c26

1 file changed

Lines changed: 1 addition & 1 deletion

File tree

arch/x86/events/intel/core.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6253,7 +6253,7 @@ __init int intel_pmu_init(void)
62536253
* Check all LBT MSR here.
62546254
* Disable LBR access if any LBR MSRs can not be accessed.
62556255
*/
6256-
if (x86_pmu.lbr_nr && !check_msr(x86_pmu.lbr_tos, 0x3UL))
6256+
if (x86_pmu.lbr_tos && !check_msr(x86_pmu.lbr_tos, 0x3UL))
62576257
x86_pmu.lbr_nr = 0;
62586258
for (i = 0; i < x86_pmu.lbr_nr; i++) {
62596259
if (!(check_msr(x86_pmu.lbr_from + i, 0xffffUL) &&

0 commit comments

Comments
 (0)