Commit 51b73f01 authored by Sandipan Das's avatar Sandipan Das Committed by Wenkuan Wang
Browse files

perf/x86/amd/core: Avoid register reset when CPU is dead

mainline inclusion
from mainline-v6.9-rc1
commit ad8c91282c95f801c37812d59d2d9eba6899b384
category: feature
bugzilla: https://gitee.com/openeuler/kernel/issues/I9A3IS


CVE: NA

--------------------------------

When bringing a CPU online, some of the PMC and LBR related registers
are reset. The same is done when a CPU is taken offline although that
is unnecessary. This currently happens in the "cpu_dead" callback which
is also incorrect as the callback runs on a control CPU instead of the
one that is being taken offline. This also affects hibernation and
suspend to RAM on some platforms as reported in the link below.

Fixes: 21d59e3e ("perf/x86/amd/core: Detect PerfMonV2 support")
Reported-by: default avatarMario Limonciello <mario.limonciello@amd.com>
Signed-off-by: default avatarSandipan Das <sandipan.das@amd.com>
Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: https://lore.kernel.org/r/550a026764342cf7e5812680e3e2b91fe662b5ac.1706526029.git.sandipan.das@amd.com


Signed-off-by: default avatarWenkuan Wang <Wenkuan.Wang@amd.com>
parent 23534451
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -604,7 +604,6 @@ static void amd_pmu_cpu_dead(int cpu)

	kfree(cpuhw->lbr_sel);
	cpuhw->lbr_sel = NULL;
	amd_pmu_cpu_reset(cpu);

	if (!x86_pmu.amd_nb_constraints)
		return;