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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> From: Jason Gunthorpe <jgg@xxxxxxxxxx>
> Sent: Wednesday, September 27, 2023 11:44 PM
> 
> 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.
> 

I'm not sure the benefit of doing so. Instead it makes the caller side
vfio more confusing by using attach/replace/detach for device vs.
using set/unset for pasid?




[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux