Re: [PATCH v10 0/5] perf: arm_spe: Armv8.8 SPE features

From: James Clark

Date: Thu Nov 20 2025 - 04:19:29 EST




On 20/11/2025 1:54 am, Namhyung Kim wrote:
Hello,

On Tue, Nov 11, 2025 at 11:37:54AM +0000, James Clark wrote:
Support SPE_FEAT_FDS data source filtering.

What's the state of this series? I can merge the tools part (3, 4, 5)
once the kernel part lands somewhere.

Thanks,
Namhyung


The SPE driver part was blocked on Peter's ack for the config4 change. He's given it now so Will should be able to take the driver.

Thanks
James


---
Changes in v10:
- Pick up Peter's ack
- Slightly clarify commit message regarding the difference between the
data source filter and the data source
- Link to v9: https://lore.kernel.org/r/20251029-james-perf-feat_spe_eft-v9-0-d22536b9cf94@xxxxxxxxxx

Changes in v9:
- Fix another typo in docs: s/data_src_filter/inv_data_src_filter/g
- Drop already applied patches for other features. Only the data source
filtering patches remain.
- Rebase on latest perf-tools-next
- Link to v8: https://lore.kernel.org/r/20250901-james-perf-feat_spe_eft-v8-0-2e2738f24559@xxxxxxxxxx

Changes in v8:
- Define __spe_vers_imp before it's used
- "disable traps to PMSDSFR" -> "disable traps of PMSDSFR to EL2"
- Link to v7: https://lore.kernel.org/r/20250814-james-perf-feat_spe_eft-v7-0-6a743f7fa259@xxxxxxxxxx

Changes in v7:
- Fix typo in docs: s/data_src_filter/inv_data_src_filter/g
- Pickup trailers
- Link to v6: https://lore.kernel.org/r/20250808-james-perf-feat_spe_eft-v6-0-6daf498578c8@xxxxxxxxxx

Changes in v6:
- Rebase to resolve conflict with BRBE changes in el2_setup.h
- Link to v5: https://lore.kernel.org/r/20250721-james-perf-feat_spe_eft-v5-0-a7bc533485a1@xxxxxxxxxx

Changes in v5:
- Forgot to pickup tags from v4
- Forgot to drop test and review tags on v4 patches that were
significantly modified
- Update commit message for data source filtering to mention inversion
- Link to v4: https://lore.kernel.org/r/20250721-james-perf-feat_spe_eft-v4-0-0a527410f8fd@xxxxxxxxxx

Changes in v4:
- Rewrite "const u64 feat_spe_eft_bits" inline
- Invert data source filter so that it's possible to exclude all data
sources without adding an additional 'enable filter' flag
- Add a macro in el2_setup.h to check for an SPE version
- Probe valid filter bits instead of hardcoding them
- Take in Leo's commit to expose the filter bits as it depends on the
new filter probing
- Link to v3: https://lore.kernel.org/r/20250605-james-perf-feat_spe_eft-v3-0-71b0c9f98093@xxxxxxxxxx

Changes in v3:
- Use PMSIDR_EL1_FDS instead of 1 << PMSIDR_EL1_FDS_SHIFT
- Add VNCR offsets
- Link to v2: https://lore.kernel.org/r/20250529-james-perf-feat_spe_eft-v2-0-a01a9baad06a@xxxxxxxxxx

Changes in v2:
- Fix detection of FEAT_SPE_FDS in el2_setup.h
- Pickup Marc Z's sysreg change instead which matches the json
- Restructure and expand docs changes
- Link to v1: https://lore.kernel.org/r/20250506-james-perf-feat_spe_eft-v1-0-dd480e8e4851@xxxxxxxxxx

---
James Clark (5):
perf: Add perf_event_attr::config4
perf: arm_spe: Add support for filtering on data source
tools headers UAPI: Sync linux/perf_event.h with the kernel sources
perf tools: Add support for perf_event_attr::config4
perf docs: arm-spe: Document new SPE filtering features

drivers/perf/arm_spe_pmu.c | 37 +++++++++++
include/uapi/linux/perf_event.h | 2 +
tools/include/uapi/linux/perf_event.h | 2 +
tools/perf/Documentation/perf-arm-spe.txt | 104 +++++++++++++++++++++++++++---
tools/perf/tests/parse-events.c | 13 +++-
tools/perf/util/parse-events.c | 11 ++++
tools/perf/util/parse-events.h | 1 +
tools/perf/util/parse-events.l | 1 +
tools/perf/util/pmu.c | 8 +++
tools/perf/util/pmu.h | 1 +
10 files changed, 170 insertions(+), 10 deletions(-)
---
base-commit: 081006b7c8e19406dc6674c6b6d086764d415b5c
change-id: 20250312-james-perf-feat_spe_eft-66cdf4d8fe99

Best regards,
--
James Clark <james.clark@xxxxxxxxxx>