aboutsummaryrefslogtreecommitdiff
path: root/migration
diff options
context:
space:
mode:
authorPeter Xu <peterx@redhat.com>2023-10-30 12:33:42 -0400
committerJuan Quintela <quintela@redhat.com>2023-11-01 16:13:58 +0100
commit62f5da7dd10a594fb30cebb5569dc738456f7131 (patch)
treea855f570ec8cf9bfe2cead8ba9eea211bce13583 /migration
parentc64a59552e44fbae22a565eec3632df59e79d57c (diff)
downloadqemu-62f5da7dd10a594fb30cebb5569dc738456f7131.zip
qemu-62f5da7dd10a594fb30cebb5569dc738456f7131.tar.gz
qemu-62f5da7dd10a594fb30cebb5569dc738456f7131.tar.bz2
migration: Set downtime_start even for postcopy
Postcopy calculates its downtime separately. It always sets MigrationState.downtime properly, but not MigrationState.downtime_start. Make postcopy do the same as other modes on properly recording the timestamp when the VM is going to be stopped. Drop the temporary variable in postcopy_start() along the way. Signed-off-by: Peter Xu <peterx@redhat.com> Reviewed-by: Fabiano Rosas <farosas@suse.de> Reviewed-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Juan Quintela <quintela@redhat.com> Message-ID: <20231030163346.765724-2-peterx@redhat.com>
Diffstat (limited to 'migration')
-rw-r--r--migration/migration.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/migration/migration.c b/migration/migration.c
index 6abcbef..6dcdc5b 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -2126,7 +2126,6 @@ static int postcopy_start(MigrationState *ms, Error **errp)
int ret;
QIOChannelBuffer *bioc;
QEMUFile *fb;
- int64_t time_at_stop = qemu_clock_get_ms(QEMU_CLOCK_REALTIME);
uint64_t bandwidth = migrate_max_postcopy_bandwidth();
bool restart_block = false;
int cur_state = MIGRATION_STATUS_ACTIVE;
@@ -2148,6 +2147,8 @@ static int postcopy_start(MigrationState *ms, Error **errp)
qemu_mutex_lock_iothread();
trace_postcopy_start_set_run();
+ ms->downtime_start = qemu_clock_get_ms(QEMU_CLOCK_REALTIME);
+
qemu_system_wakeup_request(QEMU_WAKEUP_REASON_OTHER, NULL);
global_state_store();
ret = vm_stop_force_state(RUN_STATE_FINISH_MIGRATE);
@@ -2250,7 +2251,7 @@ static int postcopy_start(MigrationState *ms, Error **errp)
ms->postcopy_after_devices = true;
migration_call_notifiers(ms);
- ms->downtime = qemu_clock_get_ms(QEMU_CLOCK_REALTIME) - time_at_stop;
+ ms->downtime = qemu_clock_get_ms(QEMU_CLOCK_REALTIME) - ms->downtime_start;
qemu_mutex_unlock_iothread();