[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v5 08/24] replay: Fix migration use of clock
From: |
Nicholas Piggin |
Subject: |
[PATCH v5 08/24] replay: Fix migration use of clock |
Date: |
Tue, 19 Mar 2024 01:46:05 +1000 |
Migration reads host clocks when not holding the replay_mutex, which
asserts when recording a trace. It seems that these migration times
should be host times like other statistics in MigrationState. These
do not require the replay_mutex.
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
---
migration/migration.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/migration/migration.c b/migration/migration.c
index 644e073b7d..2c286ccf63 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -3424,7 +3424,7 @@ static void *migration_thread(void *opaque)
{
MigrationState *s = opaque;
MigrationThread *thread = NULL;
- int64_t setup_start = qemu_clock_get_ms(QEMU_CLOCK_HOST);
+ int64_t setup_start = qemu_clock_get_ms(QEMU_CLOCK_REALTIME);
MigThrError thr_error;
bool urgent = false;
@@ -3476,7 +3476,7 @@ static void *migration_thread(void *opaque)
qemu_savevm_wait_unplug(s, MIGRATION_STATUS_SETUP,
MIGRATION_STATUS_ACTIVE);
- s->setup_time = qemu_clock_get_ms(QEMU_CLOCK_HOST) - setup_start;
+ s->setup_time = qemu_clock_get_ms(QEMU_CLOCK_REALTIME) - setup_start;
trace_migration_thread_setup_complete();
@@ -3555,7 +3555,7 @@ static void *bg_migration_thread(void *opaque)
migration_rate_set(RATE_LIMIT_DISABLED);
- setup_start = qemu_clock_get_ms(QEMU_CLOCK_HOST);
+ setup_start = qemu_clock_get_ms(QEMU_CLOCK_REALTIME);
/*
* We want to save vmstate for the moment when migration has been
* initiated but also we want to save RAM content while VM is running.
@@ -3588,7 +3588,7 @@ static void *bg_migration_thread(void *opaque)
qemu_savevm_wait_unplug(s, MIGRATION_STATUS_SETUP,
MIGRATION_STATUS_ACTIVE);
- s->setup_time = qemu_clock_get_ms(QEMU_CLOCK_HOST) - setup_start;
+ s->setup_time = qemu_clock_get_ms(QEMU_CLOCK_REALTIME) - setup_start;
trace_migration_thread_setup_complete();
--
2.42.0
- [PATCH v5 02/24] scripts/replay-dump.py: rejig decoders in event number order, (continued)
- [PATCH v5 02/24] scripts/replay-dump.py: rejig decoders in event number order, Nicholas Piggin, 2024/03/18
- [PATCH v5 01/24] scripts/replay-dump.py: Update to current rr record format, Nicholas Piggin, 2024/03/18
- [PATCH v5 03/24] tests/avocado: excercise scripts/replay-dump.py in replay tests, Nicholas Piggin, 2024/03/18
- [PATCH v5 04/24] replay: allow runstate shutdown->running when replaying trace, Nicholas Piggin, 2024/03/18
- [PATCH v5 05/24] Revert "replay: stop us hanging in rr_wait_io_event", Nicholas Piggin, 2024/03/18
- [PATCH v5 06/24] tests/avocado: replay_kernel.py add x86-64 q35 machine test, Nicholas Piggin, 2024/03/18
- [PATCH v5 07/24] chardev: set record/replay on the base device of a muxed device, Nicholas Piggin, 2024/03/18
- [PATCH v5 08/24] replay: Fix migration use of clock,
Nicholas Piggin <=
- [PATCH v5 10/24] virtio-net: Use replay_schedule_bh_event for bhs that affect machine state, Nicholas Piggin, 2024/03/18
- [PATCH v5 09/24] replay: Fix migration replay_mutex locking, Nicholas Piggin, 2024/03/18
- [PATCH v5 11/24] virtio-net: Use virtual time for RSC timers, Nicholas Piggin, 2024/03/18
- [PATCH v5 12/24] savevm: Fix load_snapshot error path crash, Nicholas Piggin, 2024/03/18
- [PATCH v5 13/24] tests/avocado: replay_linux.py remove the timeout expected guards, Nicholas Piggin, 2024/03/18