Re: [RFC PATCH 5/7] iommu/riscv: Expose global QoS IDs in sysfs

Drew Fustini <[email protected]>
Newsgroups org.kernel.vger.linux-kernel,dev.linux.lists.iommu,org.infradead.lists.linux-riscv,org.kernel.vger.linux-doc,org.kernel.vger.linux-kselftest
Message-ID <andiub47zsUsL4qh@x1>
On Tue, Jul 14, 2026 at 09:06:55PM +0800, Zhanpeng Zhang wrote:
> The RISC-V IOMMU QoS extension provides iommu_qosid as a per-IOMMU
> global default tag. It is used for IOMMU-originated DDT, CQ, FQ, PQ, and
> MSI accesses, and for device-originated requests when DDTP is in BARE
> mode.
> 
> Initialize iommu_qosid to RCID 0 and MCID 0 when the hardware advertises
> QOSID support. Preserve reserved and WPRI bits with read-modify-write,
> and use register readback to reject values which the WARL fields do not
> retain.
> 
> Add a qosid attribute to the RISC-V IOMMU class device. Reading returns
> the current RCID and MCID values. Writing the documented
> 'rcid=<rcid> mcid=<mcid>' form updates both fields while preserving the
> other register bits.
> 
> Keep this interface separate from resctrl group QoS. The sysfs attribute
> controls the IOMMU-wide default, while resctrl device assignment programs
> per-device DC.ta in translated modes.
> 
> Signed-off-by: Zhanpeng Zhang <[email protected]>
> ---
>  .../ABI/testing/sysfs-class-iommu-riscv-iommu |  27 +++
>  MAINTAINERS                                   |  10 ++
>  drivers/iommu/riscv/iommu.c                   | 159 +++++++++++++++++-
>  drivers/iommu/riscv/iommu.h                   |   9 +-
>  4 files changed, 202 insertions(+), 3 deletions(-)
>  create mode 100644 Documentation/ABI/testing/sysfs-class-iommu-riscv-iommu
> 
> diff --git a/Documentation/ABI/testing/sysfs-class-iommu-riscv-iommu b/Documentation/ABI/testing/sysfs-class-iommu-riscv-iommu
> new file mode 100644
> index 000000000000..b0cd68997f17
> --- /dev/null
> +++ b/Documentation/ABI/testing/sysfs-class-iommu-riscv-iommu
> @@ -0,0 +1,27 @@
> +What:		/sys/class/iommu/<iommu>/qosid
> +Date:		June 2026
> +KernelVersion:	6.18
> +Contact:	Zhanpeng Zhang <[email protected]>
> +Description:
> +		The RISC-V IOMMU global default QoS IDs for this IOMMU.
> +		The file is present only when the IOMMU reports the QOSID
> +		capability.
> +
> +		Reading the file returns the RCID and MCID fields from the
> +		iommu_qosid register:
> +
> +		  rcid=<rcid> mcid=<mcid>
> +
> +		Writing the file updates the RCID and MCID fields while
> +		preserving reserved/WPRI bits:
> +
> +		  rcid=<rcid> mcid=<mcid>

I think it might fit sysfs better if the rcid and mcid are separate
files in that directory. Is there a reason you combine them into one
file?

Thanks,
Drew
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.