[PATCH v2 0/5] perf: arm_spe: Add format option for discard mode

From: James Clark
Date: Tue Dec 24 2024 - 05:47:43 EST


Discard mode (Armv8.6) is a way to enable SPE related PMU events without
the overhead of recording any data. Add a format option, tests and docs
for it.

In theory we could make the driver drop calls to allocate the aux buffer
when discard mode is enabled. This would give a small memory saving,
but I think there is potential to interfere with any tools that don't
expect this so I left the aux allocation untouched. Even old tools that
don't know about discard mode will be able to use it because we publish
the format option. Not allocating the aux buffer will have to be added
to tools which I've done in Perf.

Tested on the FVP with SAMPLE_FEED_OP (0x812D):

$ perf stat -e armv8_pmuv3/event=0x812D/ -- true

Performance counter stats for 'true':

0 armv8_pmuv3/event=0x812D/

$ perf record -e arm_spe/discard/ -a -N -B --no-bpf-event -o - > /dev/null &
$ perf stat -e armv8_pmuv3/event=0x812D/ -- true

Performance counter stats for 'true':

17350 armv8_pmuv3/event=0x812D/

Changes since v1:
* Add a new section and some clarifications about the PMU events to
the docs. (Ian)

James Clark (5):
perf: arm_spe: Add format option for discard mode
perf tool: arm-spe: Pull out functions for aux buffer and tracking
setup
perf tool: arm-spe: Don't allocate buffer or tracking event in discard
mode
perf test: arm_spe: Add test for discard mode
perf docs: arm_spe: Document new discard mode

drivers/perf/arm_spe_pmu.c | 23 ++++++
tools/perf/Documentation/perf-arm-spe.txt | 26 +++++++
tools/perf/arch/arm64/util/arm-spe.c | 90 +++++++++++++++--------
tools/perf/tests/shell/test_arm_spe.sh | 30 ++++++++
4 files changed, 137 insertions(+), 32 deletions(-)

--
2.34.1