[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20260127144904.GE1134360@nvidia.com>
Date: Tue, 27 Jan 2026 10:49:04 -0400
From: Jason Gunthorpe <jgg@...dia.com>
To: Will Deacon <will@...nel.org>
Cc: Robin Murphy <robin.murphy@....com>, Nicolin Chen <nicolinc@...dia.com>,
bhelgaas@...gle.com, joro@...tes.org, praan@...gle.com,
baolu.lu@...ux.intel.com, kevin.tian@...el.com,
miko.lenczewski@....com, linux-arm-kernel@...ts.infradead.org,
iommu@...ts.linux.dev, linux-kernel@...r.kernel.org,
linux-pci@...r.kernel.org
Subject: Re: [PATCH RFCv1 3/3] iommu/arm-smmu-v3: Allow ATS to be always on
On Tue, Jan 27, 2026 at 01:50:54PM +0000, Will Deacon wrote:
> Argh, I had conflated a transaction using SSID 0 vs a transaction
> without a substream at all. So I think this makes sense now...
Yeah, it is bit subtle, but as a SW choice the iommu subsystem
reserves PASID 0/SSID 0 as the "untagged" translation.
Several HW's force this in their implementation (ie AMD)
ARM however includes a "Substream Valid" in the input bus. Linux
doesn't use the combination "Substream Valid, SSID=0", that should
never occur.
If it wrongly does happen then IDENTITY will generate a fault, either
C_BAD_CD (due to it being non-valid) or C_BAD_SUBSTREAMID (due to
S1CDMax disabling substreams).
While PAGING will either fault with C_BAD_SUBSTREAMID (S2 paging
domain) or success when S1DSS=b10.
Jason
Powered by blists - more mailing lists