[PATCH v1 14/14] iommu/arm-smmu-v3: Add arm_smmu_cache_invalidate_user
Jason Gunthorpe
jgg at nvidia.com
Tue Mar 21 04:48:31 PDT 2023
On Tue, Mar 21, 2023 at 08:34:00AM +0000, Tian, Kevin wrote:
> > > Rephrasing that to put into a design: the IOCTL would pass a
> > > user pointer to the queue, the size of the queue, then a head
> > > pointer and a tail pointer? Then the kernel reads out all the
> > > commands between the head and the tail and handles all those
> > > invalidation commands only?
> >
> > Yes, that is one possible design
>
> If we cannot have the short path in the kernel then I'm not sure the
> value of using native format and queue in the uAPI. Batching can
> be enabled over any format.
SMMUv3 will have a hardware short path where the HW itself runs the
VM's command queue and does this logic.
So I like the symmetry of the SW path being close to that.
> Btw probably a dumb question. The current invalidation IOCTL is
> per hwpt. If picking a native format does it suggest making the IOCTL
> per iommufd given native format is per IOMMU and could carry
> scope bigger than a hwpt.
At least on SMMUv3 it depends on what happens with VMID.
If we can tie the VMID to the iommu_domain then the invalidation has
to flow through the iommu_domain to pick up the VMID.
If the VMID is tied to the entire iommufd_ctx then it can flow
independently.
Jason
More information about the linux-arm-kernel
mailing list