Hi,
This is another round of replay fixes posted here
https://lore.kernel.org/qemu-devel/20240813050638.446172-1-npiggin@gmail.com/
A bunch of those fixes have been merged, but there are still some
outstanding here.
Dropped from the series is the net announce change, which seemed to
be the main issue Pavel had so far:
https://lore.kernel.org/qemu-devel/6e9b8e49-f00f-46fc-bbf8-4af27e0c3906@ispras.ru/
New in this series is a reworking of the replay BH APIs because people
didn't like the replay_xxx APIs throughout the tree. These new APIs
also have some assertions added to catch un-converted users when replay
is enabled, because it is far harder to debug it when it surfaces as a
replay failure.
These new API assertions caught a hw/ide replay bug which solves some
replay_linux test hangs. Couple of fixes in the replay_linux test case,
and now all tests are passing including aarch64 tests, see here
https://gitlab.com/npiggin/qemu/-/jobs/8695386122
(In that run a couple of the x86_64 tests were disabled to fit the
aarch64 tests in because gitlab seems to kill the job after 1 hour
so we can't fit them all in)
ppc64 also passes replay_linux after a couple of ppc64 fixes I'll post
a patch to add the ppc64 test later after everything works through.
Thanks,
Nick
Nicholas Piggin (17):
replay: Fix migration use of clock for statistics
replay: Fix migration replay_mutex locking
async: rework async event API for replay
util/main-loop: Convert to new bh API
util/thread-pool: Convert to new bh API
util/aio-wait: Convert to new bh API
async/coroutine: Convert to new bh API
migration: Convert to new bh API
monitor: Convert to new bh API
qmp: Convert to new bh API
block: Convert to new bh API
hw/ide: Fix record-replay and convert to new bh API
hw/scsi: Convert to new bh API
async: add debugging assertions for record/replay in bh APIs
tests/avocado/replay_linux: Fix compile error
tests/avocado/replay_linux: Fix cdrom device setup
tests/avocado/replay_linux: remove the timeout expected guards
docs/devel/replay.rst | 7 +--
include/block/aio.h | 44 ++++++++++++++++--
include/sysemu/replay.h | 2 +-
backends/rng-builtin.c | 2 +-
block.c | 4 +-
block/blkreplay.c | 10 +++-
block/block-backend.c | 24 ++++++----
block/io.c | 5 +-
block/iscsi.c | 5 +-
block/nfs.c | 10 ++--
block/null.c | 4 +-
block/nvme.c | 8 ++--
hw/ide/core.c | 9 ++--
hw/net/virtio-net.c | 14 +++---
hw/scsi/scsi-bus.c | 14 ++++--
job.c | 3 +-
migration/migration.c | 17 +++++--
migration/savevm.c | 15 +++---
monitor/monitor.c | 3 +-
monitor/qmp.c | 5 +-
qapi/qmp-dispatch.c | 5 +-
replay/replay-events.c | 29 +++++-------
stubs/replay-tools.c | 2 +-
util/aio-wait.c | 3 +-
util/async.c | 75 ++++++++++++++++++++++++++++--
util/main-loop.c | 2 +-
util/thread-pool.c | 8 ++--
scripts/block-coroutine-wrapper.py | 3 +-
tests/avocado/replay_linux.py | 9 ++--
29 files changed, 245 insertions(+), 96 deletions(-)