This set of patches includes several fixes for replay and adds network record/replay for network devices. It also makes possible saving/restoring vmstate in replay mode.
Record and replay for network interactions is performed with the network filter. Each backend must have its own instance of the replay filter as follows: -netdev user,id=net1 -device rtl8139,netdev=net1 -object filter-replay,id=replay,netdev=net1 This patches add rrsnapshot option for icount. rrshapshot option creates start snapshot at record and loads it at replay. It allows preserving the state of disk images used by virtual machine. This vm state can also use used to roll back the execution while replaying. This set of patches includes fixes and additions for icount and record/replay implementation: - VM start/stop in replay mode - Network interaction record/replay - overlay option for blkreplay filter - rrsnapshot option for record/replay - vmstate fix for integratorcp ARM platform v5 changes: - Recording is stopped when initial snapshot cannot be created - Minor changes v4 changes: - Overlay option is removed from blkreplay driver (as suggested by Paolo Bonzini) - Minor changes v3 changes: - Added rrsnapshot option for specifying the initial snapshot name (as suggested by Paolo Bonzini) - Minor changes --- Pavel Dovgalyuk (9): replay: move internal data to the structure replay: vmstate for replay module replay: allow replay stopping and restarting record/replay: add network support savevm: add public save_vmstate function replay: save/load initial state block: don't make snapshots for filters block: implement bdrv_recurse_is_first_non_filter for blkreplay integratorcp: adding vmstate for save/restore block/blkreplay.c | 24 ++++++----- block/snapshot.c | 3 + cpus.c | 1 docs/replay.txt | 30 ++++++++++++++ hw/arm/integratorcp.c | 62 ++++++++++++++++++++++++++++ include/sysemu/replay.h | 25 +++++++++++ include/sysemu/sysemu.h | 1 migration/savevm.c | 33 ++++++++++----- net/Makefile.objs | 1 net/filter-replay.c | 92 +++++++++++++++++++++++++++++++++++++++++ qemu-options.hx | 8 +++- replay/Makefile.objs | 2 + replay/replay-events.c | 21 +++++++++ replay/replay-internal.c | 20 ++++----- replay/replay-internal.h | 33 +++++++++++++-- replay/replay-net.c | 102 ++++++++++++++++++++++++++++++++++++++++++++++ replay/replay-snapshot.c | 78 +++++++++++++++++++++++++++++++++++ replay/replay-time.c | 2 - replay/replay.c | 23 +++++++--- stubs/replay.c | 5 ++ vl.c | 14 +++++- 21 files changed, 528 insertions(+), 52 deletions(-) create mode 100644 net/filter-replay.c create mode 100644 replay/replay-net.c create mode 100644 replay/replay-snapshot.c -- Pavel Dovgalyuk