Ping. Pavel Dovgalyuk
> -----Original Message----- > From: Pavel Dovgalyuk [mailto:pavel.dovga...@ispras.ru] > Sent: Tuesday, February 27, 2018 12:52 PM > To: qemu-devel@nongnu.org > Cc: kw...@redhat.com; peter.mayd...@linaro.org; war2jor...@live.com; > boost.li...@gmail.com; > quint...@redhat.com; ciro.santi...@gmail.com; jasow...@redhat.com; > m...@redhat.com; > zuban...@gmail.com; maria.klimushenk...@ispras.ru; dovga...@ispras.ru; > kra...@redhat.com; > pavel.dovga...@ispras.ru; thomas.dull...@googlemail.com; pbonz...@redhat.com; > alex.ben...@linaro.org > Subject: [ PATCH v7 00/22] replay additions > > This set of patches moves replay lock upper in the function call tree. > Now replay lock functions similar to BQL in older version and allows > deterministic execution of the threads in icount mode. > 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 > > There is also a set of helper scripts written by Alex Bennée > for debugging the record/replay code. > > v6 patches with updates for v7 are available in the repository: > https://github.com/ispras/qemu/tree/rr-180207 > > v7 changes: > - updated record/replay documentation > - removed abort() from mutex stub functions > - fixed cpu_io_recompile function > > v6 changes: > - removed BQL optimization at all > - refined replay lock patches > - removed lock/unlock from replay-audio > > v5 changes: > - removed patch for narrowing BQL-protected code > - disabled bdrv_(drain/flush)_all for record/replay mode > > v4 changes: > - removed upstreamed patches > - added patch for saving async queue state in replay > - minor fixes > > v3 changes: > - removed upstreamed patches > - fixed bug with recursive checkpoints > - fixed bug with icount warp checkpoint > > v2 changes: > - updated lock/unlock logic (as suggested by Paolo Bonzini) > - updated cpu execution loop to avoid races in setting/resetting exit > request (as suggested > by Paolo Bonzini) > - minor changes > > --- > > Alex Bennée (5): > 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/replay-dump.py: replay log dumper > > Pavel Dovgalyuk (17): > cpu-exec: fix exception_index handling > 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: save prior value of the host clock > replay: don't destroy mutex at exit > replay: check return values of fwrite > replay: avoid recursive call of checkpoints > replay: don't process async events when warping the clock > replay: save vmstate of the asynchronous events > replay: don't drain/flush bdrv queue while RR is working > replay: update documentation > tcg: fix cpu_io_recompile > > > accel/tcg/cpu-exec.c | 5 + > accel/tcg/translate-all.c | 18 ++- > block/blkreplay.c | 75 +++++++++++ > block/io.c | 22 +++ > cpus.c | 26 +++- > docs/replay.txt | 163 +++++++++++++++++++++--- > include/qemu/timer.h | 14 ++ > include/sysemu/replay.h | 18 +++ > migration/savevm.c | 13 ++ > replay/replay-audio.c | 14 +- > replay/replay-char.c | 21 +-- > replay/replay-events.c | 75 +++++------ > replay/replay-internal.c | 47 ++++++- > replay/replay-internal.h | 16 ++ > replay/replay-snapshot.c | 12 ++ > replay/replay-time.c | 10 + > replay/replay.c | 62 ++++++--- > scripts/replay-dump.py | 308 > +++++++++++++++++++++++++++++++++++++++++++++ > stubs/replay.c | 9 + > util/main-loop.c | 15 ++ > util/qemu-timer.c | 12 ++ > vl.c | 12 +- > 22 files changed, 831 insertions(+), 136 deletions(-) > create mode 100755 scripts/replay-dump.py > > -- > Pavel Dovgalyuk