]> git.ipfire.org Git - thirdparty/linux.git/commit
perf/x86/intel: Ensure LBRs are disabled when a CPU is starting
authorSean Christopherson <seanjc@google.com>
Fri, 31 Jan 2025 01:07:21 +0000 (17:07 -0800)
committerPeter Zijlstra <peterz@infradead.org>
Sat, 8 Feb 2025 14:47:26 +0000 (15:47 +0100)
commitc631a2de7ae48d50434bdc205d901423f8577c65
treef1ac30d7c119c241e6289e58bb71bca32033ad6c
parent47a973fd75639fe80d59f9e1860113bb2a0b112b
perf/x86/intel: Ensure LBRs are disabled when a CPU is starting

Explicitly clear DEBUGCTL.LBR when a CPU is starting, prior to purging the
LBR MSRs themselves, as at least one system has been found to transfer
control to the kernel with LBRs enabled (it's unclear whether it's a BIOS
flaw or a CPU goof).  Because the kernel preserves the original DEBUGCTL,
even when toggling LBRs, leaving DEBUGCTL.LBR as is results in running
with LBRs enabled at all times.

Closes: https://lore.kernel.org/all/c9d8269bff69f6359731d758e3b1135dedd7cc61.camel@redhat.com
Reported-by: Maxim Levitsky <mlevitsk@redhat.com>
Signed-off-by: Sean Christopherson <seanjc@google.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Maxim Levitsky <mlevitsk@redhat.com>
Cc: stable@vger.kernel.org
Link: https://lkml.kernel.org/r/20250131010721.470503-1-seanjc@google.com
arch/x86/events/intel/core.c
arch/x86/include/asm/msr-index.h