Skip to content

perf/x86/amd: Do not WARN() on every IRQ

Michael Petlan requested to merge mpetlan/centos-stream-9:my_RHEL-12341 into main

JIRA: https://issues.redhat.com/browse/RHEL-12341

upstream

commit 599522d9d2e19d6240e4312577f1c5f3ffca22f6 Author: Breno Leitao leitao@debian.org Date: Thu Sep 14 19:58:40 2023 +0530

description

Zen 4 systems running buggy microcode can hit a WARN_ON() in the PMI handler, as shown below, several times while perf runs. A simple perf top run is enough to render the system unusable:

WARNING: CPU: 18 PID: 20608 at arch/x86/events/amd/core.c:944 amd_pmu_v2_handle_irq+0x1be/0x2b0

This happens because the Performance Counter Global Status Register (PerfCntGlobalStatus) has one or more bits set which are considered reserved according to the "AMD64 Architecture Programmer’s Manual, Volume 2: System Programming, 24593":

https://www.amd.com/system/files/TechDocs/24593.pdf

To make this less intrusive, warn just once if any reserved bit is set and prompt the user to update the microcode. Also sanitize the value to what the code is handling, so that the overflow events continue to be handled for the number of counters that are known to be sane.

Going forward, the following microcode patch levels are recommended for Zen 4 processors in order to avoid such issues with reserved bits:

Family=0x19 Model=0x11 Stepping=0x01: Patch=0x0a10113e Family=0x19 Model=0x11 Stepping=0x02: Patch=0x0a10123e Family=0x19 Model=0xa0 Stepping=0x01: Patch=0x0aa00116 Family=0x19 Model=0xa0 Stepping=0x02: Patch=0x0aa00212

Commit f2eb058afc57 ("linux-firmware: Update AMD cpu microcode") from the linux-firmware tree has binaries that meet the minimum required patch levels.

[ sandipan: - add message to prompt users to update microcode - rework commit message and call out required microcode levels ]

Fixes: 7685665c390d ("perf/x86/amd/core: Add PerfMonV2 overflow handling") Reported-by: Jirka Hladky jhladky@redhat.com Signed-off-by: Breno Leitao leitao@debian.org Signed-off-by: Sandipan Das sandipan.das@amd.com Signed-off-by: Ingo Molnar mingo@kernel.org Link: https://lore.kernel.org/all/3540f985652f41041e54ee82aa53e7dbd55739ae.1694696888.git.sandipan.das@amd.com/

Signed-off-by: Michael Petlan mpetlan@redhat.com

Merge request reports