Skip to content

RFC replay additions

Pavel Dovgalyuk qemu-devel 1 version New

Get series with b4
b4 am 20171031110641.5836.43266.stgit@pasha-VirtualBox

Versions newest first

  1. v1 RFC Latest26 patches 0 repliesNew

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/26block: implement bdrv_snapshot_goto for blkreplayblock/blkreplay.c+8 -00 replies
2/26blkreplay: create temporary overlay for underlaying devicesblock/blkreplay.c stubs/replay.c vl.c+67 -10 replies
3/26replay: disable default snapshot for record/replayvl.c+7 -10 replies
4/26replay: fix processing async eventsreplay/replay-events.c+2 -20 replies
5/26replay: fixed replay_enable_eventsreplay/replay-events.c+5 -30 replies
6/26replay: fix save/load vm for non-empty queueinclude/sysemu/replay.h migration/savevm.c replay/replay-snapshot.c+22 -00 replies
7/26replay: added replay log format descriptiondocs/replay.txt+69 -00 replies
8/26replay: make safe vmstop at record/replaycpus.c migration/savevm.c+6 -50 replies
9/26replay: save prior value of the host clockinclude/qemu/timer.h replay/replay-internal.h replay/replay-snapshot.c +1 more+31 -00 replies
10/26icount: fixed saving/restoring of icount warp timerscpus.c+66 -190 replies
11/26target/arm/arm-powertctl: drop BQL assertionstarget/arm/arm-powerctl.c+0 -80 replies
12/26cpus: push BQL lock to qemu_*_wait_io_eventaccel/kvm/kvm-all.c cpus.c target/i386/hax-all.c+21 -130 replies
13/26cpus: only take BQL for sleeping threadscpus-common.c cpus.c+9 -140 replies
14/26replay/replay.c: bump REPLAY_VERSION againreplay/replay-internal.h replay/replay.c+2 -20 replies
15/26replay/replay-internal.c: track holding of replay_lockreplay/replay-internal.c+11 -00 replies
16/26replay: make locking visible outside replay codeinclude/sysemu/replay.h replay/replay-internal.c replay/replay-internal.h +1 more+33 -60 replies
17/26replay: push replay_mutex_lock up the call treecpus.c docs/replay.txt include/sysemu/replay.h +7 more+126 -590 replies
18/26cpu-exec: don't overwrite exception_indexaccel/tcg/cpu-exec.c+3 -10 replies
19/26cpu-exec: reset exit flag before calling cpu_exec_nocacheaccel/tcg/cpu-exec.c+1 -00 replies
20/26replay: don't destroy mutex at exitreplay/replay.c+0 -10 replies
21/26replay: check return values of fwritereplay/replay-internal.c+3 -10 replies
22/26scripts/qemu-gdb: add simple tcg lock status helperscripts/qemu-gdb.py scripts/qemugdb/tcg.py+48 -10 replies
23/26util/qemu-thread-*: add qemu_lock, locked and unlock trace eventsinclude/qemu/thread.h util/qemu-thread-posix.c util/trace-events+26 -160 replies
24/26scripts/analyse-locks-simpletrace.py: script to analyse lock timesscripts/analyse-locks-simpletrace.py+99 -00 replies
25/26scripts/replay-dump.py: replay log dumperscripts/replay-dump.py+308 -00 replies
26/26scripts/qemu-gdb/timers.py: new helper to dump timer statescripts/qemu-gdb.py scripts/qemugdb/timers.py+56 -10 replies

Reviews trailers per patch

1 of 26 patches has a Reviewed-by or Acked-by.

PatchPhilippe Mathieu-Daudé
1/26
2/26
3/26
4/26
5/26
6/26
7/26
8/26
9/26
10/26
11/26
12/26
13/26
14/26
15/26
16/26
17/26
18/26
19/26
20/26
21/26
22/26
23/26
24/26
25/26
26/26R-b

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v1 thread

Cover letter [Qemu-devel] [RFC PATCH 00/26] replay additions

This set of patches includex fixes from Alex Bennée for fixing BQL and replay locks after inventing the MTTCG. It also includes some additional replay patches that makes this set of fixes working. It is also fixes some vmstate creation (and loading) issues in record/replay modes:
- VM start/stop fixes in replay mode
- overlay creation for blkreplay filter
- fixes for vmstate save/load in record/replay mode
- fixes for host clock vmstate
- fixes for icount timers vmstate

There is also a set of helper scripts written by Alex Bennée for debugging the record/replay code.

---

Alex Bennée (12):
target/arm/arm-powertctl: drop BQL assertions
cpus: push BQL lock to qemu_*_wait_io_event
cpus: only take BQL for sleeping threads replay/replay.c: bump REPLAY_VERSION again replay/replay-internal.c: track holding of replay_lock
replay: make locking visible outside replay code
replay: push replay_mutex_lock up the call tree scripts/qemu-gdb: add simple tcg lock status helper util/qemu-thread-*: add qemu_lock, locked and unlock trace events scripts/analyse-locks-simpletrace.py: script to analyse lock times scripts/replay-dump.py: replay log dumper scripts/qemu-gdb/timers.py: new helper to dump timer state

Pavel Dovgalyuk (14):
block: implement bdrv_snapshot_goto for blkreplay
blkreplay: create temporary overlay for underlaying devices
replay: disable default snapshot for record/replay
replay: fix processing async events
replay: fixed replay_enable_events
replay: fix save/load vm for non-empty queue
replay: added replay log format description
replay: make safe vmstop at record/replay
replay: save prior value of the host clock
icount: fixed saving/restoring of icount warp timers
cpu-exec: don't overwrite exception_index
cpu-exec: reset exit flag before calling cpu_exec_nocache
replay: don't destroy mutex at exit
replay: check return values of fwrite

 accel/kvm/kvm-all.c                  |    4 
 accel/tcg/cpu-exec.c                 |    5 -
 block/blkreplay.c                    |   73 ++++++++
 cpus-common.c                        |   13 +
 cpus.c                               |  149 +++++++++++++---
 docs/replay.txt                      |   88 ++++++++++
 include/qemu/thread.h                |   14 +-
 include/qemu/timer.h                 |   14 ++
 include/sysemu/replay.h              |   19 ++
 migration/savevm.c                   |   13 +
 replay/replay-char.c                 |   21 +-
 replay/replay-events.c               |   30 +--
 replay/replay-internal.c             |   26 +++
 replay/replay-internal.h             |    9 +
 replay/replay-snapshot.c             |    9 +
 replay/replay-time.c                 |   10 +
 replay/replay.c                      |   43 ++---
 scripts/analyse-locks-simpletrace.py |   99 +++++++++++
 scripts/qemu-gdb.py                  |    4 
 scripts/qemugdb/tcg.py               |   46 +++++
 scripts/qemugdb/timers.py            |   54 ++++++
 scripts/replay-dump.py               |  308 ++++++++++++++++++++++++++++++++++
 stubs/replay.c                       |   16 ++
 target/arm/arm-powerctl.c            |    8 -
 target/i386/hax-all.c                |    3 
 util/main-loop.c                     |   23 ++-
 util/qemu-thread-posix.c             |   21 +-
 util/qemu-timer.c                    |   12 +
 util/trace-events                    |    7 -
 vl.c                                 |   12 +
 30 files changed, 1014 insertions(+), 139 deletions(-)
 create mode 100755 scripts/analyse-locks-simpletrace.py
 create mode 100644 scripts/qemugdb/tcg.py
 create mode 100644 scripts/qemugdb/timers.py
 create mode 100755 scripts/replay-dump.py
Signature · 1 line
Pavel Dovgalyuk