]> git.proxmox.com Git - mirror_qemu.git/commit
migration/multifd: call multifd_send_sync_main when sending RAM_SAVE_FLAG_EOS
authorWei Yang <richardw.yang@linux.intel.com>
Wed, 12 Jun 2019 01:43:37 +0000 (09:43 +0800)
committerJuan Quintela <quintela@redhat.com>
Mon, 15 Jul 2019 13:39:02 +0000 (15:39 +0200)
commitb6526c4b2122138833dacf7da74caabb84177344
tree052ff62b9f4bdd82e387a79692e021b2ca22520f
parent8f7798f191117691853f4c65efca24a60bb2ff80
migration/multifd: call multifd_send_sync_main when sending RAM_SAVE_FLAG_EOS

On receiving RAM_SAVE_FLAG_EOS, multifd_recv_sync_main() is called to
synchronize receive threads. Current synchronization mechanism is to wait
for each channel's sem_sync semaphore. This semaphore is triggered by a
packet with MULTIFD_FLAG_SYNC flag. While in current implementation, we
don't do multifd_send_sync_main() to send such packet when
blk_mig_bulk_active() is true.

This will leads to the receive threads won't notify
multifd_recv_sync_main() by sem_sync. And multifd_recv_sync_main() will
always wait there.

[Note]: normal migration test works, while didn't test the
blk_mig_bulk_active() case. Since not sure how to produce this
situation.

Signed-off-by: Wei Yang <richardw.yang@linux.intel.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Message-Id: <20190612014337.11255-1-richardw.yang@linux.intel.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
migration/ram.c