From: Baolu Lu baolu.lu@linux.intel.com Sent: Wednesday, September 27, 2023 10:49 AM
On 9/26/23 5:26 PM, Yi Liu wrote:
From: Kevin Tiankevin.tian@intel.com
This introduces three APIs for device drivers to manage pasid attach/ replace/detach.
int iommufd_device_pasid_attach(struct iommufd_device *idev, u32 pasid, u32 *pt_id); int iommufd_device_pasid_replace(struct iommufd_device *idev, u32 pasid, u32 *pt_id); void iommufd_device_pasid_detach(struct iommufd_device *idev, u32 pasid);
I am a bit puzzled. Do we really need both attach and replace interfaces to install a hwpt onto a pasid on device? The IOMMUFD already tracks the connections between hwpt and {device, pasid}, so it could easily call the right iommu interfaces (attach vs. replace). Perhaps I overlooked previous discussion on this.
attach means a transition from non-present to present.
replace can support changing a present entry atomically if iommu driver support it.
the necessity of supporting both applies to both RID and RID+PASID.