[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v5 08/24] replay: Fix migration use of clock
From: |
Alex Bennée |
Subject: |
Re: [PATCH v5 08/24] replay: Fix migration use of clock |
Date: |
Tue, 19 Mar 2024 20:40:52 +0000 |
User-agent: |
mu4e 1.12.2; emacs 29.2 |
Nicholas Piggin <npiggin@gmail.com> writes:
> 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.
s/host/CLOCK_HOST/ and s/host/CLOCK_REALTIME/ but its a confusing
sentence. If the MigrationState is guest visible it should be
QEMU_CLOCK_VIRTUAL surely?
> 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();
--
Alex Bennée
Virtualisation Tech Lead @ Linaro
- [PATCH v5 01/24] scripts/replay-dump.py: Update to current rr record format, (continued)
- [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, 2024/03/18
- Re: [PATCH v5 08/24] replay: Fix migration use of clock,
Alex Bennée <=
- [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