Reviewed-by: Pavel Dovgalyuk <pavel.dovgal...@ispras.ru>
On 20.12.2024 13:42, Nicholas Piggin wrote:
Hi, This is another round of replay fixes posted here https://lore.kernel.org/qemu-devel/20240813050638.446172-1-npig...@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-4af27e0c3...@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(-)