linux/arch/x86/events
Breno Leitao ab33a8f764 perf/x86/amd/core: Always clear status for idx
[ Upstream commit 263f5ecaf7 ]

The variable 'status' (which contains the unhandled overflow bits) is
not being properly masked in some cases, displaying the following
warning:

  WARNING: CPU: 156 PID: 475601 at arch/x86/events/amd/core.c:972 amd_pmu_v2_handle_irq+0x216/0x270

This seems to be happening because the loop is being continued before
the status bit being unset, in case x86_perf_event_set_period()
returns 0. This is also causing an inconsistency because the "handled"
counter is incremented, but the status bit is not cleaned.

Move the bit cleaning together above, together when the "handled"
counter is incremented.

Fixes: 7685665c39 ("perf/x86/amd/core: Add PerfMonV2 overflow handling")
Signed-off-by: Breno Leitao <leitao@debian.org>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Sandipan Das <sandipan.das@amd.com>
Link: https://lore.kernel.org/r/20230321113338.1669660-1-leitao@debian.org
Signed-off-by: Sasha Levin <sashal@kernel.org>
History 2023-03-30 12:49:13 +02:00
..
amd perf/x86/amd/core: Always clear status for idx 2023-03-30 12:49:13 +02:00
intel perf/x86/intel/uncore: Add Meteor Lake support 2023-03-10 09:33:47 +01:00
zhaoxin x86/perf/zhaoxin: Add stepping check for ZXC 2023-03-10 09:32:45 +01:00
core.c perf/x86: Refuse to export capabilities for hybrid PMUs 2023-02-22 12:59:55 +01:00
Kconfig perf/x86/Kconfig: Fix indentation in the Kconfig file 2022-05-25 15:54:26 +02:00
Makefile perf/x86: Move branch classifier 2022-08-27 00:05:44 +02:00
msr.c perf/x86/msr: Add Emerald Rapids 2023-02-01 08:34:30 +01:00
perf_event.h Perf events updates for v6.1: 2022-10-10 09:27:46 -07:00
perf_event_flags.h x86/perf: Assert all platform event flags are within PERF_EVENT_FLAG_ARCH 2022-09-07 21:54:01 +02:00
probe.c perf/x86/rapl: Add msr mask support 2021-02-10 14:44:54 +01:00
probe.h perf/x86/rapl: Add msr mask support 2021-02-10 14:44:54 +01:00
rapl.c perf/x86/rapl: Add support for Intel Emerald Rapids 2023-01-24 07:24:32 +01:00
utils.c perf/x86/utils: Fix uninitialized var in get_branch_type() 2022-09-29 12:20:56 +02:00