Messages in this thread | | | Date | Tue, 10 May 2022 11:02:38 -0300 | From | Jason Gunthorpe <> | Subject | Re: [PATCH v6 03/12] iommu: Add attach/detach_dev_pasid domain ops |
| |
On Tue, May 10, 2022 at 02:17:29PM +0800, Lu Baolu wrote:
> This adds a pair of common domain ops for this purpose and adds helpers > to attach/detach a domain to/from a {device, PASID}.
I wonder if this should not have a detach op - after discussing with Robin we can see that detach_dev is not used in updated drivers. Instead attach_dev acts as 'set_domain'
So, it would be more symmetrical if attaching a blocking_domain to the PASID was the way to 'detach'.
This could be made straightforward by following the sketch I showed to have a static, global blocing_domain and providing a pointer to it in struct iommu_ops
Then 'detach pasid' is:
iommu_ops->blocking_domain->ops->attach_dev_pasid(domain, dev, pasid);
And we move away from the notion of 'detach' and in the direction that everything continuously has a domain set. PASID would logically default to blocking_domain, though we wouldn't track this anywhere.
Jason
| |