[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20260123135600.GX1134360@nvidia.com>
Date: Fri, 23 Jan 2026 09:56:00 -0400
From: Jason Gunthorpe <jgg@...dia.com>
To: Pranjal Shrivastava <praan@...gle.com>
Cc: Nicolin Chen <nicolinc@...dia.com>, will@...nel.org,
jean-philippe@...aro.org, robin.murphy@....com, joro@...tes.org,
balbirs@...dia.com, miko.lenczewski@....com, peterz@...radead.org,
kevin.tian@...el.com, linux-arm-kernel@...ts.infradead.org,
iommu@...ts.linux.dev, linux-kernel@...r.kernel.org
Subject: Re: [PATCH v9 6/7] iommu/arm-smmu-v3: Add arm_smmu_invs based
arm_smmu_domain_inv_range()
On Fri, Jan 23, 2026 at 09:48:37AM +0000, Pranjal Shrivastava wrote:
> For INV_TYPE_S1_ASID, the new code loops and checks size_too_big
> via arm_smmu_inv_to_cmdq_batch. However, for INV_TYPE_ATS, it issues
> a single command for the entire range. While this matches the current
> driver, are we confident arm_smmu_atc_inv_to_cmd handles all massive
> sizes correctly without needing a similar loop or "too big" fallback?
At the PCI level ATS invalidations accept an arbitary byte range, so
all ranges should be converted into a single CMDQ command and pushed
as a single TLP.
The issue the "too big" stuff is solving is for the IOTLB itself which
can require an invalidation rage to be exploded into many smaller
commands.
Jason
Powered by blists - more mailing lists