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(-)
Support SPE_FEAT_FDS data source filtering.
---
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@linaro.org
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@linaro.org
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@linaro.org
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@linaro.org
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@linaro.org
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@linaro.org
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@linaro.org
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@linaro.org
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@linaro.org
---
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@linaro.org>
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 > > --- > 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@linaro.org > > 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@linaro.org > > 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@linaro.org > > 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@linaro.org > > 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@linaro.org > > 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@linaro.org > > 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@linaro.org > > 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@linaro.org > > 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@linaro.org > > --- > 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@linaro.org> >
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@linaro.org >> >> 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@linaro.org >> >> 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@linaro.org >> >> 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@linaro.org >> >> 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@linaro.org >> >> 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@linaro.org >> >> 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@linaro.org >> >> 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@linaro.org >> >> 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@linaro.org >> >> --- >> 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@linaro.org> >>
On Tue, Nov 11, 2025 at 11:37:54AM +0000, James Clark wrote: > Support SPE_FEAT_FDS data source filtering. > > --- > 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@linaro.org > > 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@linaro.org > > 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@linaro.org > > 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@linaro.org > > 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@linaro.org > > 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@linaro.org > > 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@linaro.org > > 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@linaro.org > > 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@linaro.org > > --- > 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 Applied the tools part to perf-tools-next, thanks! Best regards, Namhyung
On Tue, 11 Nov 2025 11:37:54 +0000, James Clark wrote:
> Support SPE_FEAT_FDS data source filtering.
>
Applied kernel changes to will (for-next/perf), thanks!
[1/5] perf: Add perf_event_attr::config4
https://git.kernel.org/will/c/cbbfba4847b8
[2/5] perf: arm_spe: Add support for filtering on data source
https://git.kernel.org/will/c/e6a27290d800
Cheers,
--
Will
https://fixes.arm64.dev
https://next.arm64.dev
https://will.arm64.dev
© 2016 - 2025 Red Hat, Inc.