On Wed, May 13 2026, Samiullah Khawaja wrote: > On Tue, May 12, 2026 at 02:29:19PM -0700, Vipin Sharma wrote: >>On Tue, May 12, 2026 at 01:59:51PM -0700, David Matlack wrote: >>> On Mon, May 11, 2026 at 4:48 PM Vipin Sharma <[email protected]> wrote: >>> >>> > diff --git a/drivers/vfio/pci/Kconfig b/drivers/vfio/pci/Kconfig >>> > index c12d614fc6c4..019de053f116 100644 >>> > --- a/drivers/vfio/pci/Kconfig >>> > +++ b/drivers/vfio/pci/Kconfig >>> > @@ -45,13 +45,15 @@ config VFIO_PCI_IGD >>> > >>> > config VFIO_PCI_LIVEUPDATE >>> > bool "VFIO PCI support for Live Update (EXPERIMENTAL)" >>> > - depends on PCI_LIVEUPDATE >>> > + depends on PCI_LIVEUPDATE && VFIO_DEVICE_CDEV >>> > help >>> > Support for preserving devices bound to vfio-pci across a Live >>> > Update. This option should only be enabled by developers >>> > working on >>> > implementing this support. Once enough support has landed in the >>> > kernel, this option will no longer be marked EXPERIMENTAL. >>> > >>> > + Enabling this will disable support for VFIO PCI DMA buffer. >>> > + >>> > If you don't know what to do here, say N. >>> > >>> > endif >>> > @@ -68,7 +70,7 @@ config VFIO_PCI_ZDEV_KVM >>> > To enable s390x KVM vfio-pci extensions, say Y. >>> > >>> > config VFIO_PCI_DMABUF >>> > - def_bool y if VFIO_PCI_CORE && PCI_P2PDMA && DMA_SHARED_BUFFER >>> > + def_bool y if VFIO_PCI_CORE && PCI_P2PDMA && DMA_SHARED_BUFFER && >>> > !VFIO_PCI_LIVEUPDATE >>> >>> Why does enabling VFIO_PCI_LIVEUPDATE require disabling >>> VFIO_PCI_DMABUF? I saw the cover letter says "to keep things simple", >>> but what specific problem does this solve or simplify? >> >>I should have provided more details there. >> >>When device is getting reset in vfio_pci_liveupdate_freeze(), we are >>zapping userspace mapped bars, we also need to use >>vfio_pci_dma_buf_move() to revoke dma buffer access or >>vfio_pci_dma_buf_cleanup() combination. Cleanup takes the memory lock >>which freeze already takes, and there are some refcounts which are >>managed in both of these APIs. This was causing complexities with code >>flow based on result of pci_load_saved_state(). All this was adding more >>refactoring than I wanted in the series. > > Maybe we can return -EOPNOTSUPP if any dmabufs for this vfio cdev are > exported during preserve?
Whichever way you go with, a TODO/comment would be nice to have so someone (including future you) looking at this code knows why this restriction exists. -- Regards, Pratyush Yadav

