Skip to content

perf: Arm SMMU PMU driver

Robin Murphy linux-arm-kernel 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest6 patches 3 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/6iommu/arm-smmu: Account for PMU interruptsdrivers/iommu/arm/arm-smmu/arm-smmu.c drivers/iommu/arm/arm-smmu/arm-smmu.h+46 -520 replies
2/6acpi/iort: Register SMMUv2 PMU interruptsdrivers/acpi/arm64/iort.c drivers/iommu/arm/arm-smmu/arm-smmu.c+15 -50 replies
3/6iommu/arm-smmu: Add DT PMU supportDocumentation/devicetree/bindings/iommu/arm,smmu.yaml drivers/iommu/arm/arm-smmu/arm-smmu.c+22 -12 replies
4/6iommu/smmu: Create child devices for PMUsdrivers/iommu/arm/arm-smmu/arm-smmu.c+46 -00 replies
5/6perf: Add ARM SMMU PMU driverdrivers/perf/Kconfig drivers/perf/Makefile drivers/perf/arm-smmu-pmu.c+748 -90 replies
6/6arm64: dts: Add SMMU PMUs to Junoarch/arm64/boot/dts/arm/juno-base.dtsi+20 -60 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [PATCH 0/6] perf: Arm SMMU PMU driver

Hi all,

Since our friends at Linaro had some interest in the area, I've dug up and finished off my old SMMUv1/v2 PMU driver, now with a slightly less terrible DT binding to boot. Patch #1 involves a general refactoring of the IRQ setup code in arm-smmu which also now serves to remove the general dependency on explicit IRQ resources for of_platform devices.

ACPI support via IORT (patch #2) is pleasingly trivial, but does have a hard dependency on the previous patch, otherwise SMMU context interrupts may get messed up.

The driver itself in patch #5 is still largely a time capsule of me learning the PMU APIs 5 years ago (as a warm-up for arm-cmn). I've mostly just added IRQ affinity support (which I didn't yet fully understand at the time) and tweaked a few comments. I'm pretty confident all the testing I did back then is still valid, so I've just run some quick sanity checks with patch #6 to verify the new DT binding.

Cheers,
Robin.

Robin Murphy (6):
iommu/arm-smmu: Account for PMU interrupts
acpi/iort: Register SMMUv2 PMU interrupts
iommu/arm-smmu: Add DT PMU support
iommu/smmu: Create child devices for PMUs
perf: Add ARM SMMU PMU driver
arm64: dts: Add SMMU PMUs to Juno

 .../devicetree/bindings/iommu/arm,smmu.yaml   |  19 +-
 arch/arm64/boot/dts/arm/juno-base.dtsi        |  26 +-
 drivers/acpi/arm64/iort.c                     |  18 +-
 drivers/iommu/arm/arm-smmu/arm-smmu.c         | 143 ++--
 drivers/iommu/arm/arm-smmu/arm-smmu.h         |   5 +-
 drivers/perf/Kconfig                          |  24 +-
 drivers/perf/Makefile                         |   1 +
 drivers/perf/arm-smmu-pmu.c                   | 732 ++++++++++++++++++
 8 files changed, 896 insertions(+), 72 deletions(-)
 create mode 100644 drivers/perf/arm-smmu-pmu.c
Signature · 7 lines
2.28.0.dirty


_______________________________________________
linux-arm-kernel mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel