Set current_migration after calling tcp_star_incoming_migration(). On incoming side, we don't have to print remaining rams, so introduce incoming flag to switch messages.
Signed-off-by: Yoshiaki Tamura <tamura.yoshi...@lab.ntt.co.jp> --- migration.c | 18 ++++++++++++++---- 1 files changed, 14 insertions(+), 4 deletions(-) diff --git a/migration.c b/migration.c index 706fe55..9b6aa28 100644 --- a/migration.c +++ b/migration.c @@ -36,12 +36,14 @@ static uint32_t max_throttle = (32 << 20); static MigrationState *current_migration; +static int incoming; + void qemu_start_incoming_migration(const char *uri) { const char *p; if (strstart(uri, "tcp:", &p)) - tcp_start_incoming_migration(p); + current_migration = tcp_start_incoming_migration(p); #if !defined(WIN32) else if (strstart(uri, "exec:", &p)) exec_start_incoming_migration(p); @@ -50,8 +52,12 @@ void qemu_start_incoming_migration(const char *uri) else if (strstart(uri, "fd:", &p)) fd_start_incoming_migration(p); #endif - else + else { fprintf(stderr, "unknown migration protocol: %s\n", uri); + return; + } + + incoming = 1; } int do_migrate(Monitor *mon, const QDict *qdict, QObject **ret_data) @@ -162,8 +168,12 @@ static void migrate_print_status(Monitor *mon, const char *name, monitor_printf(mon, "transferred %s: %" PRIu64 " kbytes\n", name, qdict_get_int(qdict, "transferred") >> 10); - monitor_printf(mon, "remaining %s: %" PRIu64 " kbytes\n", name, - qdict_get_int(qdict, "remaining") >> 10); + if (incoming) { + monitor_printf(mon, "remaining %s: n/a\n", name); + } else { + monitor_printf(mon, "remaining %s: %" PRIu64 " kbytes\n", name, + qdict_get_int(qdict, "remaining") >> 10); + } monitor_printf(mon, "total %s: %" PRIu64 " kbytes\n", name, qdict_get_int(qdict, "total") >> 10); } -- 1.7.0.31.g1df487