On 2016/10/26 13:06, Amit Shah wrote:
On (Tue) 18 Oct 2016 [20:10:01], zhanghailiang wrote:
This new communication path will be used for returning messages
from Secondary side to Primary side.

Signed-off-by: zhanghailiang <zhang.zhanghaili...@huawei.com>
Signed-off-by: Li Zhijian <lizhij...@cn.fujitsu.com>
Reviewed-by: Dr. David Alan Gilbert <dgilb...@redhat.com>

Reviewed-by: Amit Shah <amit.s...@redhat.com>

@@ -63,8 +75,24 @@ void *colo_process_incoming_thread(void *opaque)
      migrate_set_state(&mis->state, MIGRATION_STATUS_ACTIVE,
                        MIGRATION_STATUS_COLO);

+    mis->to_src_file = qemu_file_get_return_path(mis->from_src_file);
+    if (!mis->to_src_file) {
+        error_report("COLO incoming thread: Open QEMUFile to_src_file failed");
+        goto out;
+    }
+    /*
+     * Note: We set the fd to unblocked in migration incoming coroutine,
+     * But here we are in the COLO incoming thread, so it is ok to set the
+     * fd back to blocked.
+     */
+    qemu_file_set_blocking(mis->from_src_file, true);

Why does it need to be blocking?


Because, the communication/action between Primary side and Secondary side 
should be
sequential. Just as postcopy does. :)

Thanks,
hailiang

                Amit

.



Reply via email to