> From: Baolu Lu <baolu...@linux.intel.com> > Sent: Wednesday, May 11, 2022 10:32 AM > > On 2022/5/10 22:02, Jason Gunthorpe wrote: > > 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. > > I am not sure whether we still need to keep the blocking domain concept > when we are entering the new PASID world. Please allow me to wait and > listen to more opinions. >
I'm with Jason on this direction. In concept after a PASID is detached it's essentially blocked. Implementation-wise it doesn't prevent the iommu driver from marking the PASID entry as non-present as doing in this series instead of actually pointing to the empty page table of the block domain. But api-wise it does make the entire semantics more consistent. Thanks Kevin _______________________________________________ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu