]> xenbits.xensource.com Git - qemu-xen.git/commitdiff
migration: split use of MigrationState.total_time
authorPeter Xu <peterx@redhat.com>
Wed, 3 Jan 2018 12:20:08 +0000 (20:20 +0800)
committerJuan Quintela <quintela@redhat.com>
Mon, 15 Jan 2018 11:48:08 +0000 (12:48 +0100)
It was used either to:

1. store initial timestamp of migration start, and
2. store total time used by last migration

Let's provide two parameters for each of them.  Mix use of the two is
slightly misleading.

Signed-off-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
migration/migration.c
migration/migration.h

index 0b513c2020d0f402ceadbed60f33ea4a1a90f5df..23f6e5092ce20f1391fc448f034d46c7a32a7eb5 100644 (file)
@@ -619,7 +619,7 @@ static void fill_source_migration_info(MigrationInfo *info)
         info->has_status = true;
         info->has_total_time = true;
         info->total_time = qemu_clock_get_ms(QEMU_CLOCK_REALTIME)
-            - s->total_time;
+            - s->start_time;
         info->has_expected_downtime = true;
         info->expected_downtime = s->expected_downtime;
         info->has_setup_time = true;
@@ -1300,7 +1300,8 @@ MigrationState *migrate_init(void)
 
     migrate_set_state(&s->state, MIGRATION_STATUS_NONE, MIGRATION_STATUS_SETUP);
 
-    s->total_time = qemu_clock_get_ms(QEMU_CLOCK_REALTIME);
+    s->start_time = qemu_clock_get_ms(QEMU_CLOCK_REALTIME);
+    s->total_time = 0;
     return s;
 }
 
@@ -2332,7 +2333,7 @@ static void *migration_thread(void *opaque)
     qemu_mutex_lock_iothread();
     if (s->state == MIGRATION_STATUS_COMPLETED) {
         uint64_t transferred_bytes = qemu_ftell(s->to_dst_file);
-        s->total_time = end_time - s->total_time;
+        s->total_time = end_time - s->start_time;
         if (!entered_postcopy) {
             s->downtime = end_time - start_time;
         }
index d84bc550b1ff956e45a4d0221eb99e66973503fd..d1132b1cf7ebf65a725952c49ebeffe088f67f92 100644 (file)
@@ -115,6 +115,9 @@ struct MigrationState
     } rp_state;
 
     double mbps;
+    /* Timestamp when recent migration starts (ms) */
+    int64_t start_time;
+    /* Total time used by latest migration (ms) */
     int64_t total_time;
     int64_t downtime;
     int64_t expected_downtime;