Re: [RFC PATCH 3/3] iommufd/tsm: Add tsm_bind/unbind iommufd ioctls

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

 



On Fri, Jun 06, 2025 at 11:40:30PM +0800, Xu Yilun wrote:
> On Wed, Jun 04, 2025 at 09:37:47AM -0300, Jason Gunthorpe wrote:
> > On Wed, Jun 04, 2025 at 11:47:14AM +1000, Alexey Kardashevskiy wrote:
> > 
> > > If it is the case of killing QEMU - then there is no usespace and
> > > then it is a matter of what fd is closed first - VFIO-PCI or
> > > IOMMUFD, we could teach IOMMUFD to hold an VFIO-PCI fd to guarantee
> > > the order. Thanks,
> > 
> > It is the other way around VFIO holds the iommufd and it always
> > destroys first.
> > 
> > We are missing a bit where the vfio destruction of the idevice does
> > not clean up the vdevice too.
> 
> Seems there is still problem, the suggested flow is:
> 
> 1. VFIO fops release
> 2. vfio_pci_core_close_device()
> 3. vfio_df_iommufd_unbind()
> 4.   iommufd_device_unbind()
> 5.     iommufd_device_destroy()
> 6.       iommufd_vdevice_destroy() (not implemented)
> 7.         iommufd_vdevice_tsm_unbind()
> 
> In step 2, vfio pci does all cleanup, including invalidate MMIO.
> In step 7 vdevice does tsm unbind, this is not correct. TSM unbind
> should be done before invalidating MMIO.
> 
> TSM unbind should always the first thing to do to release lockdown,
> then cleanup physical device configuration.

I think you'd have to re-order things so that vfio_df_iommufd_unbind()
happens before the mmio invalidate..

And if you can succeed in moving the MMIO mapping to bind/unbind then
the invalidate from vfio won't matter.

Jason




[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux