[PATCH v5 00/24] replay: fixes and new test cases

Nicholas Piggin posted 24 patches 1 month, 1 week ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20240318154621.2361161-1-npiggin@gmail.com
Maintainers: Richard Henderson <richard.henderson@linaro.org>, Paolo Bonzini <pbonzini@redhat.com>, "Marc-André Lureau" <marcandre.lureau@redhat.com>, Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>, "Michael S. Tsirkin" <mst@redhat.com>, Jason Wang <jasowang@redhat.com>, Nicholas Piggin <npiggin@gmail.com>, Daniel Henrique Barboza <danielhb413@gmail.com>, David Gibson <david@gibson.dropbear.id.au>, Harsh Prateek Bora <harshpb@linux.ibm.com>, Peter Xu <peterx@redhat.com>, Fabiano Rosas <farosas@suse.de>, John Snow <jsnow@redhat.com>, Cleber Rosa <crosa@redhat.com>, "Philippe Mathieu-Daudé" <philmd@linaro.org>, Wainer dos Santos Moschetta <wainersm@redhat.com>, Beraldo Leal <bleal@redhat.com>
docs/system/replay.rst             |   5 +
include/hw/ppc/spapr_cpu_core.h    |   3 +
include/sysemu/replay.h            |  16 ++-
include/sysemu/runstate.h          |   1 +
accel/tcg/tcg-accel-ops-rr.c       |   2 +-
chardev/char.c                     |  71 ++++++++---
hw/net/virtio-net.c                |  17 +--
hw/ppc/ppc.c                       |  11 +-
hw/ppc/spapr.c                     |  36 +-----
hw/ppc/spapr_hcall.c               |  33 +++++
hw/ppc/spapr_rtas.c                |   1 +
migration/migration.c              |  17 ++-
migration/savevm.c                 |   1 +
replay/replay-snapshot.c           |  57 +++++++++
replay/replay.c                    |  50 ++++----
system/runstate.c                  |  31 ++++-
system/vl.c                        |   9 ++
qemu-options.hx                    |   9 +-
scripts/replay-dump.py             | 167 ++++++++++++++++--------
tests/avocado/replay_kernel.py     |  31 ++++-
tests/avocado/replay_linux.py      |  92 +++++++++++++-
tests/avocado/reverse_debugging.py | 197 +++++++++++++++++++++++++----
22 files changed, 667 insertions(+), 190 deletions(-)
[PATCH v5 00/24] replay: fixes and new test cases
Posted by Nicholas Piggin 1 month, 1 week ago
Since v4,

- Fixed a 32-bit compile bug and leftover debugging prints.
- Dropped the patch to change virtio net guest announce timers
  for now.
- Increased replay_kernel.py timeout because patch 3 was just
  nudging x86_64 test over the 120s timeout when run on gitlab.
- New patch to add a non-flaky x86_64 q35 machine replay_kernel test.
- Added some workarounds for the new reverse_debugging.py test cases
  that x86_64 and aarch64 fail on, so they don't cause CI failures.

Here are some CI jobs showing successes with replay_linux.py,
replay_kernel.py, and reverse_debugging.py on aarch64, ppc64,
and x86_64 tests:

https://gitlab.com/npiggin/qemu/-/jobs/6416485196
https://gitlab.com/npiggin/qemu/-/jobs/6416485200

Thanks,
Nick

Nicholas Piggin (24):
  scripts/replay-dump.py: Update to current rr record format
  scripts/replay-dump.py: rejig decoders in event number order
  tests/avocado: excercise scripts/replay-dump.py in replay tests
  replay: allow runstate shutdown->running when replaying trace
  Revert "replay: stop us hanging in rr_wait_io_event"
  tests/avocado: replay_kernel.py add x86-64 q35 machine test
  chardev: set record/replay on the base device of a muxed device
  replay: Fix migration use of clock
  replay: Fix migration replay_mutex locking
  virtio-net: Use replay_schedule_bh_event for bhs that affect machine
    state
  virtio-net: Use virtual time for RSC timers
  savevm: Fix load_snapshot error path crash
  tests/avocado: replay_linux.py remove the timeout expected guards
  tests/avocado: reverse_debugging.py mark aarch64 and pseries as not
    flaky
  tests/avocado: reverse_debugging.py add test for x86-64 q35 machine
  tests/avocado: reverse_debugging.py verify addresses between record
    and replay
  tests/avocado: reverse_debugging.py stop VM before sampling icount
  tests/avocado: reverse_debugging reverse-step at the end of the trace
  tests/avocado: reverse_debugging.py add snapshot testing
  replay: simple auto-snapshot mode for record
  tests/avocado: reverse_debugging.py test auto-snapshot mode
  target/ppc: fix timebase register reset state
  spapr: Fix vpa dispatch count for record-replay
  tests/avocado: replay_linux.py add ppc64 pseries test

 docs/system/replay.rst             |   5 +
 include/hw/ppc/spapr_cpu_core.h    |   3 +
 include/sysemu/replay.h            |  16 ++-
 include/sysemu/runstate.h          |   1 +
 accel/tcg/tcg-accel-ops-rr.c       |   2 +-
 chardev/char.c                     |  71 ++++++++---
 hw/net/virtio-net.c                |  17 +--
 hw/ppc/ppc.c                       |  11 +-
 hw/ppc/spapr.c                     |  36 +-----
 hw/ppc/spapr_hcall.c               |  33 +++++
 hw/ppc/spapr_rtas.c                |   1 +
 migration/migration.c              |  17 ++-
 migration/savevm.c                 |   1 +
 replay/replay-snapshot.c           |  57 +++++++++
 replay/replay.c                    |  50 ++++----
 system/runstate.c                  |  31 ++++-
 system/vl.c                        |   9 ++
 qemu-options.hx                    |   9 +-
 scripts/replay-dump.py             | 167 ++++++++++++++++--------
 tests/avocado/replay_kernel.py     |  31 ++++-
 tests/avocado/replay_linux.py      |  92 +++++++++++++-
 tests/avocado/reverse_debugging.py | 197 +++++++++++++++++++++++++----
 22 files changed, 667 insertions(+), 190 deletions(-)

-- 
2.42.0