Hi, this is a bit of an RFC patch, I may need to send patches to different trees to merge but they kind of go together.
The primary motivation is to fix migrating larx reservations, previously discussed here: https://lists.gnu.org/archive/html/qemu-ppc/2023-06/msg00452.html It turns out a recent patch fixed it in a hacky way by chance, but the fix is not compatible with rr debugging as Peter noted. Fortunately rr debugging is broken on ppc, so we are done. Can it be fixed nicely? Patch 1 tries that by migrating reservation state when rr is in use. The rest of the patches is getting rr to work. I've not go to trying to add a specific larx test case for it yet, but it started to pass basic tests. There is one strangeness explained in the final patch which I've not yet worked out though. Comments welcome. Thanks, Nick Nicholas Piggin (7): target/ppc: Fix CPU reservation migration for record-replay scripts/replay_dump.sh: Update to current rr record format spapr: Fix machine reset deadlock from replay-record spapr: Fix record-replay machine reset consuming too many events target/ppc: Fix timebase reset with record-replay tests/avocado: boot ppc64 pseries replay-record test to Linux VFS mount tests/avocado: ppc64 pseries reverse debugging test hw/ppc/ppc.c | 11 +++- hw/ppc/spapr.c | 32 +++++++++-- include/hw/ppc/spapr.h | 2 + scripts/replay-dump.py | 89 ++++++++++++++++++++++++++++-- target/ppc/compat.c | 19 +++++++ target/ppc/cpu.h | 3 + target/ppc/machine.c | 26 ++++++++- target/ppc/translate.c | 2 + tests/avocado/replay_kernel.py | 3 +- tests/avocado/reverse_debugging.py | 28 +++++++++- 10 files changed, 197 insertions(+), 18 deletions(-) -- 2.40.1