From: Juan Quintela <quint...@trasno.org> When printing debug information for migration, print total time spent.
Signed-off-by: Juan Quintela <quint...@trasno.org> Signed-off-by: Juan Quintela <quint...@redhat.com> --- migration.c | 13 +++++++++++++ 1 files changed, 13 insertions(+), 0 deletions(-) diff --git a/migration.c b/migration.c index 9ee8b17..4786406 100644 --- a/migration.c +++ b/migration.c @@ -26,9 +26,16 @@ #ifdef DEBUG_MIGRATION #define DPRINTF(fmt, ...) \ do { printf("migration: " fmt, ## __VA_ARGS__); } while (0) +static int64_t start, stop; +#define START_MIGRATION_CLOCK() do { start = qemu_get_clock(rt_clock); } while (0) +#define STOP_MIGRATION_CLOCK() \ + do { stop = qemu_get_clock(rt_clock) - start; \ + } while (0) #else #define DPRINTF(fmt, ...) \ do { } while (0) +#define START_MIGRATION_CLOCK() do {} while (0) +#define STOP_MIGRATION_CLOCK() do {} while (0) #endif /* Migration speed throttling */ @@ -88,6 +95,7 @@ int do_migrate(Monitor *mon, const QDict *qdict, QObject **ret_data) return -1; } + START_MIGRATION_CLOCK(); if (strstart(uri, "tcp:", &p)) { s = tcp_start_outgoing_migration(mon, p, max_throttle, detach, blk, inc); @@ -127,6 +135,8 @@ int do_migrate_cancel(Monitor *mon, const QDict *qdict, QObject **ret_data) if (s) s->cancel(s); + STOP_MIGRATION_CLOCK(); + DPRINTF("canceled after %lu milliseconds\n", stop); return 0; } @@ -378,6 +388,9 @@ void migrate_fd_put_ready(void *opaque) } else { state = MIG_STATE_COMPLETED; } + STOP_MIGRATION_CLOCK(); + DPRINTF("ended after %lu milliseconds\n", stop); + if (migrate_fd_cleanup(s) < 0) { if (old_vm_running) { vm_start(); -- 1.7.3.2