Re: [PATCH v1 1/3] iommu/riscv: Add iommu perf driver

Will Deacon
2025-09-15T10:38:22Z

On Mon, Sep 15, 2025 at 10:09:09AM +0800, Yaxing Guo wrote:
> This patch introduces a performance monitor driver for RISC-V IOMMU
> iohpm implementions that support hardware performance counters.
> The driver expose RISC-V-IOMMU-specific performance events (eg. cycles,
> tlb miss ...)through the Linux perf subsystem, enabling developers
> to profile and optimize I/O translation performance.
>
> Key features:
> - Implements a perf PMU driver for RISC-V IOMMU.
>
> - Exposes IOMMU perf events, such as 'cycles', 'tlb_miss'... via
> /sys/devices/riscv-iommu-pmu/events/, allowing use with perf
> tools:
> perf stat -C 0 -e riscv-iommu-pmu/cycles/ ...
> perf stat -C 0 -e riscv-iommu-pmu/tlb_miss/ ...
> ...
> - Supports event filtering through configureable attributes exposed
> in /sys/devices/riscv-iommu-pmu/format/, including:
> dv_gscv, pv_pscv，did_gscid，pid_pscid，idt (riscv iommu spec 5-23).
>
> - Implements overflow interrupt handling.
>
> - Adds device tree binding support via optional 'pmu-name' property
> allowing platform-specific IOMMU implementations to specify a custom
> defined event ID list. If not provided, the driver defaults to only
> supporting 'cycles'. When set to 'dummy', it enables all 9 standard
> event IDs as defined in riscv iommu spec(5-23).
>
> Signed-off-by: Yaxing Guo <guoyaxing@bosc.ac.cn>
> ---
> drivers/iommu/riscv/iommu-perf.c | 535 +++++++++++++++++++++++++++++++
> drivers/iommu/riscv/iommu-perf.h | 88 +++++
> drivers/iommu/riscv/iommu.h | 8 +
> 3 files changed, 631 insertions(+)
> create mode 100644 drivers/iommu/riscv/iommu-perf.c
> create mode 100644 drivers/iommu/riscv/iommu-perf.h

PMU drivers are better placed under drivers/perf/

(the Arm SMMUv3 PMU driver lives there, for example).

Will