[PATCH v3 0/8] perf: Arm SPEv1.2 support

Will Deacon will at kernel.org
Fri Nov 18 08:50:26 PST 2022


On Thu, Nov 17, 2022 at 08:43:17AM -0600, Rob Herring wrote:
> On Fri, Nov 4, 2022 at 10:55 AM Rob Herring <robh at kernel.org> wrote:
> >
> > This series adds support for Arm SPEv1.2 which is part of the
> > Armv8.7/Armv9.2 architecture. There's 2 new features that affect the
> > kernel: a new event filter bit, branch 'not taken', and an inverted
> > event filter register.
> >
> > Since this support adds new registers and fields, first the SPE register
> > defines are converted to automatic generation.
> >
> > Note that the 'config3' addition in sysfs format files causes SPE to
> > break. A stable fix e552b7be12ed ("perf: Skip and warn on unknown format
> > 'configN' attrs") landed in v6.1-rc1.
> >
> > The perf tool side changes are available here[1].
> >
> > Tested on FVP.
> >
> > [1] https://lore.kernel.org/all/20220914-arm-perf-tool-spe1-2-v2-v4-0-83c098e6212e@kernel.org/
> >
> > Signed-off-by: Rob Herring <robh at kernel.org>
> > ---
> > Changes in v3:
> > - Add some more missing SPE register fields and use Enums for some
> >   fields
> > - Use the new PMSIDR_EL1 register Enum defines in the SPE driver
> > - Link to v2: https://lore.kernel.org/r/20220825-arm-spe-v8-7-v2-0-e37322d68ac0@kernel.org
> >
> > Changes in v2:
> > - Convert the SPE register defines to automatic generation
> > - Fixed access to SYS_PMSNEVFR_EL1 when not present
> > - Rebase on v6.1-rc1
> > - Link to v1: https://lore.kernel.org/r/20220825-arm-spe-v8-7-v1-0-c75b8d92e692@kernel.org
> >
> > ---
> > Rob Herring (8):
> >       perf: arm_spe: Use feature numbering for PMSEVFR_EL1 defines
> >       arm64: Drop SYS_ from SPE register defines
> >       arm64/sysreg: Convert SPE registers to automatic generation
> >       perf: arm_spe: Drop BIT() and use FIELD_GET/PREP accessors
> >       perf: arm_spe: Use new PMSIDR_EL1 register enums
> >       perf: arm_spe: Support new SPEv1.2/v8.7 'not taken' event
> >       perf: Add perf_event_attr::config3
> >       perf: arm_spe: Add support for SPEv1.2 inverted event filtering
> >
> >  arch/arm64/include/asm/el2_setup.h |   6 +-
> >  arch/arm64/include/asm/sysreg.h    |  99 +++--------------------
> >  arch/arm64/kvm/debug.c             |   2 +-
> >  arch/arm64/kvm/hyp/nvhe/debug-sr.c |   2 +-
> >  arch/arm64/tools/sysreg            | 139 +++++++++++++++++++++++++++++++++
> >  drivers/perf/arm_spe_pmu.c         | 156 ++++++++++++++++++++++++-------------
> >  include/uapi/linux/perf_event.h    |   3 +
> >  7 files changed, 257 insertions(+), 150 deletions(-)
> 
> Will, any comments on this series?

Looks fine to me. Happy to queue it once the uapi change has been acked.

Will



More information about the linux-arm-kernel mailing list