Message ID | 20230716081541.27900-1-avihaih@nvidia.com (mailing list archive) |
---|---|
Headers | show |
Series | vfio/migration: Add P2P support for VFIO migration | expand |
On Sun, Jul 16, 2023 at 11:15:35AM +0300, Avihai Horon wrote: > Hi all, > > The first patch in this series adds a small optimization to VFIO > migration by moving the STOP_COPY->STOP transition to > vfio_save_cleanup(). Testing with a ConnectX-7 VFIO device showed that > this can reduce downtime by up to 6%. > > The rest of the series adds P2P support for VFIO migration. > > VFIO migration uAPI defines an optional intermediate P2P quiescent > state. While in the P2P quiescent state, P2P DMA transactions cannot be > initiated by the device, but the device can respond to incoming ones. > Additionally, all outstanding P2P transactions are guaranteed to have > been completed by the time the device enters this state. For clarity it is "all outstanding DMA transactions are guarenteed to have been completed" - the device has no idea if something is P2P or not. > The purpose of this state is to support migration of multiple devices > that are doing P2P transactions between themselves. s/are/might/ Jason
On 18/07/2023 18:46, Jason Gunthorpe wrote: > On Sun, Jul 16, 2023 at 11:15:35AM +0300, Avihai Horon wrote: >> Hi all, >> >> The first patch in this series adds a small optimization to VFIO >> migration by moving the STOP_COPY->STOP transition to >> vfio_save_cleanup(). Testing with a ConnectX-7 VFIO device showed that >> this can reduce downtime by up to 6%. >> >> The rest of the series adds P2P support for VFIO migration. >> >> VFIO migration uAPI defines an optional intermediate P2P quiescent >> state. While in the P2P quiescent state, P2P DMA transactions cannot be >> initiated by the device, but the device can respond to incoming ones. >> Additionally, all outstanding P2P transactions are guaranteed to have >> been completed by the time the device enters this state. > For clarity it is "all outstanding DMA transactions are guarenteed to > have been completed" - the device has no idea if something is P2P or > not. The uAPI states that [1]: "If the device can identify P2P transactionsthen it can stop only P2P DMA, otherwise it must stop all DMA.". So I will stick to the uAPI definition. [1] https://elixir.bootlin.com/linux/v6.5-rc1/source/include/uapi/linux/vfio.h#L1032 > >> The purpose of this state is to support migration of multiple devices >> that are doing P2P transactions between themselves. > s/are/might/ Sure, will change it. Thanks!