On Tue, Apr 26, 2022 at 8:26 PM Peter Xu <pet...@redhat.com> wrote: > > On Tue, Apr 26, 2022 at 08:06:56PM -0300, Leonardo Bras wrote: > > Implement zero copy send on nocomp_send_write(), by making use of QIOChannel > > writev + flags & flush interface. > > > > Change multifd_send_sync_main() so flush_zero_copy() can be called > > after each iteration in order to make sure all dirty pages are sent before > > a new iteration is started. It will also flush at the beginning and at the > > end of migration. > > > > Also make it return -1 if flush_zero_copy() fails, in order to cancel > > the migration process, and avoid resuming the guest in the target host > > without receiving all current RAM. > > > > This will work fine on RAM migration because the RAM pages are not usually > > freed, > > and there is no problem on changing the pages content between > > writev_zero_copy() and > > the actual sending of the buffer, because this change will dirty the page > > and > > cause it to be re-sent on a next iteration anyway. > > > > A lot of locked memory may be needed in order to use multifd migration > > with zero-copy enabled, so disabling the feature should be necessary for > > low-privileged users trying to perform multifd migrations. > > > > Signed-off-by: Leonardo Bras <leob...@redhat.com> > > Reviewed-by: Peter Xu <pet...@redhat.com> > > -- > Peter Xu >
Thanks for reviewing Peter! Best regards, Leo