On Wed, Nov 30, 2022 at 03:22:40PM -0700, Alex Williamson wrote: > On Thu, 24 Nov 2022 19:39:20 +0200 > Yishai Hadas <yishaih@xxxxxxxxxx> wrote: > > +/** > > + * VFIO_MIG_GET_PRECOPY_INFO - _IO(VFIO_TYPE, VFIO_BASE + 21) > > + * > > + * This ioctl is used on the migration data FD in the precopy phase of the > > + * migration data transfer. It returns an estimate of the current data sizes > > + * remaining to be transferred. It allows the user to judge when it is > > + * appropriate to leave PRE_COPY for STOP_COPY. > > + * > > + * This ioctl is valid only in PRE_COPY states and kernel driver should > > + * return -EINVAL from any other migration state. > > + * > > + * The vfio_precopy_info data structure returned by this ioctl provides > > + * estimates of data available from the device during the PRE_COPY states. > > + * This estimate is split into two categories, initial_bytes and > > + * dirty_bytes. > > + * > > + * The initial_bytes field indicates the amount of initial mandatory precopy > > + * data available from the device. This field should have a non-zero initial > > + * value and decrease as migration data is read from the device. > > + * It is a must to leave PRE_COPY for STOP_COPY only after this field reach > > + * zero. > > > Is this actually a requirement that's compatible with current QEMU > behavior? It's my impression that a user can force the migration to > move to STOP_COPY at any point in time. Thanks, I think it is a typo It should be explaining that leaving PRE_COPY early will make things slower, but is not a functional problem. Jason