Convert aio_bh_schedule_oneshot() to aio_bh_schedule_oneshot_event(), which can specify the clock type, making it compatible with record-replay.
Snapsohtting does not affect target machine state, so it should use QEMU_CLOCK_REALTIME so it is not recorded and replayed. Signed-off-by: Nicholas Piggin <npig...@gmail.com> --- migration/savevm.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/migration/savevm.c b/migration/savevm.c index 98821c81207..8477f116c79 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -3441,8 +3441,9 @@ static int coroutine_fn snapshot_save_job_run(Job *job, Error **errp) SnapshotJob *s = container_of(job, SnapshotJob, common); s->errp = errp; s->co = qemu_coroutine_self(); - aio_bh_schedule_oneshot(qemu_get_aio_context(), - snapshot_save_job_bh, job); + aio_bh_schedule_oneshot_event(qemu_get_aio_context(), + snapshot_save_job_bh, job, + QEMU_CLOCK_REALTIME); qemu_coroutine_yield(); return s->ret ? 0 : -1; } @@ -3452,8 +3453,9 @@ static int coroutine_fn snapshot_load_job_run(Job *job, Error **errp) SnapshotJob *s = container_of(job, SnapshotJob, common); s->errp = errp; s->co = qemu_coroutine_self(); - aio_bh_schedule_oneshot(qemu_get_aio_context(), - snapshot_load_job_bh, job); + aio_bh_schedule_oneshot_event(qemu_get_aio_context(), + snapshot_load_job_bh, job, + QEMU_CLOCK_REALTIME); qemu_coroutine_yield(); return s->ret ? 0 : -1; } @@ -3463,8 +3465,9 @@ static int coroutine_fn snapshot_delete_job_run(Job *job, Error **errp) SnapshotJob *s = container_of(job, SnapshotJob, common); s->errp = errp; s->co = qemu_coroutine_self(); - aio_bh_schedule_oneshot(qemu_get_aio_context(), - snapshot_delete_job_bh, job); + aio_bh_schedule_oneshot_event(qemu_get_aio_context(), + snapshot_delete_job_bh, job, + QEMU_CLOCK_REALTIME); qemu_coroutine_yield(); return s->ret ? 0 : -1; } -- 2.45.2