On Thu, Aug 31, 2023 at 03:57:02PM +0300, Avihai Horon wrote: > Background snapshot allows creating a snapshot of the VM while it's > running and keeping it small by not including dirty RAM pages. > > The way it works is by first stopping the VM, saving the non-iterable > devices' state and then starting the VM and saving the RAM while write > protecting it with UFFD. The resulting snapshot represents the VM state > at snapshot start. > > VFIO migration is not compatible with background snapshot. > First of all, VFIO device state is not even saved in background snapshot > because only non-iterable device state is saved. But even if it was > saved, after starting the VM, a VFIO device could dirty pages without it > being detected by UFFD write protection. This would corrupt the > snapshot, as the RAM in it would not represent the RAM at snapshot > start. > > To prevent this, block VFIO migration with background snapshot. > > Signed-off-by: Avihai Horon <avih...@nvidia.com>
Reviewed-by: Peter Xu <pet...@redhat.com> -- Peter Xu