Re: [RFC 3/8] iommufd: Support attach/replace hwpt per pasid

From: Jason Gunthorpe
Date: Wed Sep 27 2023 - 11:51:02 EST


On Wed, Sep 27, 2023 at 10:49:29AM +0800, Baolu Lu wrote:
> On 9/26/23 5:26 PM, Yi Liu wrote:
> > From: Kevin Tian<kevin.tian@xxxxxxxxx>
> >
> > 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.

It was a decision that attach will fail if something is already
attached..

But for this API we could go the way of the iommu code and have only
'set' and 'unset' as the two operations.

Jason