[PATCH v4 0/6] perf arm_spe: Dump IMPDEF events
From: James Clark <james.clark@linaro.org>
Date: 2026-04-14 12:48:13
Also in:
linux-perf-users, lkml
In the Arm SPE raw data dump, IMPDEF events aren't printed. Add the ability to add names for some known events or print the raw event number for unknown events. For example: $ perf report -D ... ARM SPE data: size 0xd000 bytes 00000000: b0 18 c6 32 80 00 80 ff a0 PC 0xff80008032c618 el1 ns=1 00000009: 64 e7 42 00 00 CONTEXT 0x42e7 el1 0000000e: 00 00 00 00 00 PAD 00000013: 49 00 LD GP-REG 00000015: 52 16 10 EV RETIRED L1D-ACCESS TLB-ACCESS On N1 the event line becomes: 00000015: 52 16 10 EV RETIRED L1D-ACCESS TLB-ACCESS LATE-PREFETCH Or on other cores it becomes: 00000015: 52 16 10 EV RETIRED L1D-ACCESS TLB-ACCESS IMPDEF:12 Signed-off-by: James Clark <james.clark@linaro.org> --- Changes in v4: - Change a pr_err() to pr_warning_once() to avoid spam (Sashiko) - Link to v3: https://lore.kernel.org/r/20260414-james-spe-impdef-decode-v3-0-63baf9c893b1@linaro.org (local) Changes in v3: - Revert for_each_set_bit() back to a loop with BIT_ULL to fix both 32 bit builds and decoding on big endian machines. - Link to v2: https://lore.kernel.org/r/20260407-james-spe-impdef-decode-v2-0-55d3ef997c48@linaro.org (local) Changes in v2: - Put MIDR in arm_spe_pkt (Leo) - Use for_each_set_bit() (Leo) - Use BIT_ULL() to fix 32bit builds (Ian) - Don't call strtol() with NULL (Ian) - Link to v1: https://lore.kernel.org/r/20260401-james-spe-impdef-decode-v1-0-ad0d372c220c@linaro.org (local) --- James Clark (6): perf arm_spe: Make a function to get the MIDR perf arm_spe: Handle missing CPU IDs perf arm_spe: Store MIDR in arm_spe_pkt perf arm_spe: Turn event name mappings into an array perf arm_spe: Decode Arm N1 IMPDEF events perf arm_spe: Print remaining IMPDEF event numbers tools/perf/util/arm-spe-decoder/Build | 2 + tools/perf/util/arm-spe-decoder/arm-spe-decoder.c | 17 ++- tools/perf/util/arm-spe-decoder/arm-spe-decoder.h | 3 +- .../util/arm-spe-decoder/arm-spe-pkt-decoder.c | 144 ++++++++++++++------- .../util/arm-spe-decoder/arm-spe-pkt-decoder.h | 5 +- tools/perf/util/arm-spe.c | 62 ++++++--- 6 files changed, 158 insertions(+), 75 deletions(-) --- base-commit: 4e03d6494f9504f8af46ba68a2a8b6877c196789 change-id: 20260331-james-spe-impdef-decode-d944f4fdcff7 Best regards, -- James Clark [off-list ref]