mbox series

[v3,0/9] replay: fixes and new test cases

Message ID 20240226082945.1452499-1-npiggin@gmail.com
Headers show
Series replay: fixes and new test cases | expand

Message

Nicholas Piggin Feb. 26, 2024, 8:29 a.m. UTC
Since v2, here fixes became less minor so I rename the series.

https://lore.kernel.org/qemu-devel/20240125160835.480488-1-npiggin@gmail.com/#r)

* Found several more bugs (patches 5-8).
* Enable the rr avocado test on pseries and aarch64 virt since they're
  passing here (and on gitlab, e.g.,
  https://gitlab.com/npiggin/qemu/-/jobs/6253787216,
  https://gitlab.com/npiggin/qemu/-/jobs/6253787218).
* Updated replay-dump script to John's feedback.

x86-64 still has issues with replay and reverse debugging tests.
replay_kernel.py seems to be timing dependent -- after patch 5 I
had it pass 30/30 runs, then the following day 0/30 and I realized
I had several other QEMU instances hogging the CPU which probably
changed timings. So the first thing I would look at is timers and
clocks. pseries had some rounding issues in time calculations that meant
clock/timer were not replayed exactly as they were recorded, which
caused hangs.

Thanks,
Nick

Nicholas Piggin (9):
  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"
  chardev: set record/replay on the base device of a muxed device
  replay: Fix migration use of clock
  replay: Fix migration replay_mutex locking
  tests/avocado/reverse_debugging.py: mark aarch64 and pseries as not
    flaky

 include/sysemu/replay.h            |   5 -
 include/sysemu/runstate.h          |   1 +
 migration/migration.h              |   2 -
 accel/tcg/tcg-accel-ops-rr.c       |   2 +-
 chardev/char.c                     |  71 ++++++++----
 migration/migration.c              |  19 +++-
 replay/replay.c                    |  23 +---
 system/runstate.c                  |  19 ++++
 scripts/replay-dump.py             | 167 ++++++++++++++++++++---------
 tests/avocado/replay_kernel.py     |  16 +++
 tests/avocado/replay_linux.py      |  15 +++
 tests/avocado/reverse_debugging.py |   9 +-
 12 files changed, 233 insertions(+), 116 deletions(-)