We will sync later in different places. Signed-off-by: Juan Quintela <quint...@redhat.com> --- migration/ram.c | 33 +++++++++++++++++++++------------ 1 file changed, 21 insertions(+), 12 deletions(-)
diff --git a/migration/ram.c b/migration/ram.c index 5f5e37f64d..35816a3a0a 100644 --- a/migration/ram.c +++ b/migration/ram.c @@ -2944,11 +2944,12 @@ static int ram_save_setup(QEMUFile *f, void *opaque) ram_control_before_iterate(f, RAM_CONTROL_SETUP); ram_control_after_iterate(f, RAM_CONTROL_SETUP); - ret = multifd_send_sync_main(f); - if (ret < 0) { - return ret; + if (migrate_multifd_sync_each_iteration()) { + ret = multifd_send_sync_main(f); + if (ret < 0) { + return ret; + } } - qemu_put_be64(f, RAM_SAVE_FLAG_EOS); qemu_fflush(f); @@ -3057,9 +3058,11 @@ static int ram_save_iterate(QEMUFile *f, void *opaque) out: if (ret >= 0 && migration_is_setup_or_active(migrate_get_current()->state)) { - ret = multifd_send_sync_main(rs->f); - if (ret < 0) { - return ret; + if (migrate_multifd_sync_each_iteration()) { + ret = multifd_send_sync_main(rs->f); + if (ret < 0) { + return ret; + } } qemu_put_be64(f, RAM_SAVE_FLAG_EOS); @@ -3125,9 +3128,11 @@ static int ram_save_complete(QEMUFile *f, void *opaque) return ret; } - ret = multifd_send_sync_main(rs->f); - if (ret < 0) { - return ret; + if (migrate_multifd_sync_each_iteration()) { + ret = multifd_send_sync_main(rs->f); + if (ret < 0) { + return ret; + } } qemu_put_be64(f, RAM_SAVE_FLAG_EOS); @@ -3799,7 +3804,9 @@ int ram_load_postcopy(QEMUFile *f) case RAM_SAVE_FLAG_EOS: /* normal exit */ - multifd_recv_sync_main(); + if (migrate_multifd_sync_each_iteration()) { + multifd_recv_sync_main(); + } break; default: error_report("Unknown combination of migration flags: 0x%x" @@ -4075,7 +4082,9 @@ static int ram_load_precopy(QEMUFile *f) break; case RAM_SAVE_FLAG_EOS: /* normal exit */ - multifd_recv_sync_main(); + if (migrate_multifd_sync_each_iteration()) { + multifd_recv_sync_main(); + } break; default: if (flags & RAM_SAVE_FLAG_HOOK) { -- 2.34.1