This series adds support for Graviton5's customised CMN-S3 which has
zeroed discovery registers.
Robin, I understand moving driver state into the core perf header isn't
ideal, but I couldn't find another way to grow the struct. The v2
submission failed the kernel test robot build on i386 (COMPILE_TEST) due
to arm_cmn_hw_event exceeding the static_assert against the 'target'
field offset when CMN_MAX_DIMENSION is increased beyond 12.
Patch 1 moves struct arm_cmn_hw_event into the hw_perf_event union to
resolve this. I'd appreciate your feedback on this approach, or any
alternative you'd suggest.
Patch 2 adds the Graviton5 workarounds themselves (unchanged from v2
except for the DTC logid fix below).
Changes since v2:
- Revert DTC logical ID assignment back to xp->logid (per Robin's
review)
- Add patch 1/2 to move arm_cmn_hw_event into hw_perf_event union
to resolve 32-bit build failure
Aviv Bakal (2):
perf/arm-cmn: Move struct arm_cmn_hw_event into struct hw_perf_event
perf/arm-cmn: Add workarounds for CMN-S3 on Graviton5
drivers/perf/arm-cmn.c | 55 +++++++++++++++++++++-----------------
include/linux/perf_event.h | 22 +++++++++++++++
2 files changed, 52 insertions(+), 25 deletions(-)
--
2.47.3