[PATCH 0/2] arm_pmu: fix fallout from context handling rewrite

From: Mark Rutland
Date: Thu Feb 16 2023 - 09:12:52 EST


Janne reports [1] that perf has been broken on Apple M1 as of commit:

bd27568117664b8b ("perf: Rewrite core context handling")

This is due to changes to pmu::filter_match() and
arm_pmu::filter_match(), which have been renamed and had their polarity
inverted, but the conversion was inconsistent, and so in some cases we
return the opposite result relative to what we had intended. This
results in consistently losing events on Apple M1.

That commit also (silently) removed the filtering of CHAIN events, which
is undesireable.

These patches fix and simplify the CPU filtering, and replace the CHAIN
event filtering with early rejection of CHAIN events, which is much
simpler.

Thanks,
Mark

[1] https://lore.kernel.org/asahi/20230215-arm_pmu_m1_regression-v1-1-f5a266577c8d@xxxxxxxxxx/

Mark Rutland (2):
arm_pmu: fix event CPU filtering
arm64: perf: reject CHAIN events at creation time

arch/arm64/kernel/perf_event.c | 15 ++++++++-------
drivers/perf/arm_pmu.c | 8 +-------
include/linux/perf/arm_pmu.h | 1 -
3 files changed, 9 insertions(+), 15 deletions(-)

--
2.30.2