Files
linux-stable-mirror/kernel
Peter Zijlstra 3a696e84a8 perf: Make sure to use pmu_ctx->pmu for groups
[ Upstream commit 4b9ce67196 ]

Oliver reported that x86_pmu_del() ended up doing an out-of-bound memory access
when group_sched_in() fails and needs to roll back.

This *should* be handled by the transaction callbacks, but he found that when
the group leader is a software event, the transaction handlers of the wrong PMU
are used. Despite the move_group case in perf_event_open() and group_sched_in()
using pmu_ctx->pmu.

Turns out, inherit uses event->pmu to clone the events, effectively undoing the
move_group case for all inherited contexts. Fix this by also making inherit use
pmu_ctx->pmu, ensuring all inherited counters end up in the same pmu context.

Similarly, __perf_event_read() should use equally use pmu_ctx->pmu for the
group case.

Fixes: bd27568117 ("perf: Rewrite core context handling")
Reported-by: Oliver Rosenberg <olrose55@gmail.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Ian Rogers <irogers@google.com>
Link: https://patch.msgid.link/20260309133713.GB606826@noisy.programming.kicks-ass.net
Signed-off-by: Sasha Levin <sashal@kernel.org>
2026-04-02 13:09:25 +02:00
..
2025-11-24 10:35:59 +01:00
2025-06-27 11:11:45 +01:00
2026-03-25 11:08:24 +01:00
2024-10-09 12:47:19 -07:00
2024-09-27 08:18:43 -07:00
2025-12-18 13:54:50 +01:00