[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [RISU PATCH v3 00/10] Record/payback patches
From: |
Alex Bennée |
Subject: |
[Qemu-devel] [RISU PATCH v3 00/10] Record/payback patches |
Date: |
Fri, 9 Dec 2016 11:48:20 +0000 |
Hi,
I did a bunch of tweaking to see if I could abstract the hackage for
record/replay a bit more. With a little bit of light re-factoring of
the send and recv functions I can move all the specific send/recv
logic into the main risu.c file and avoid having copy and pasted
functions for each architecture.
I've also introduced a header which makes tracking where you are in
the recorded stream a little easier when debugging.
It should be noted the functions:
int send_register_info(write_fn write_fn, void *uc);
int recv_and_compare_register_info(read_fn read_fn, respond_fn respond, void
*uc);
are pretty identical for each arch. I did consider folding even more
of the logic into the common code but I wasn't sure if that would
loose flexibility in the future for other architectures so I left it
as is.
I've make the same changes to ppc64 although I've been compiling and
testing under a qemu linux-user environment which might explain why
I'm seeing crashes when I try and run it. I would appreciate the PPC
guys trying it on real hardware and debugging if needed.
For reference I'm using a linux-user powered docker image (built with
the debian-bootstrap recipe in the qemu.git tree) for cross compiling:
docker run --rm -it -v /home/alex/lsrc/qemu/risu.git:/src --user=alex:alex -w
/src debian:ppc64el make
There have been some minor clean-ups to the helper scripts mainly to
aid testing by allowing the override of the RISU binary (I have
risu-arm, risu-arm64 and risu-ppc64 in my development directory).
Notes in the --- comments on each patch.
Alex Bennée (10):
risu: a bit more verbosity when running
aarch64: add hand-coded risu skeleton for directed testing
risu: paramterise send/receive functions
risu: add simple trace and replay support
risu: add support compressed tracefiles
risu_aarch64: it's -> it is
risugen: remove grocer's apostrophe from REs
new: generate_all.sh script
new: record_traces.sh helper script
new: run_risu.sh script
Makefile | 10 +-
aarch64_simd_handcoded.risu.S | 208 ++++++++++++++++++++++++++++++++++++++++++
configure | 55 +++++++++++
generate_all.sh | 55 +++++++++++
record_traces.sh | 20 ++++
risu.c | 139 ++++++++++++++++++++++++----
risu.h | 14 ++-
risu_aarch64.c | 119 +++++++++++++++---------
risu_arm.c | 148 +++++++++++++++++++-----------
risu_ppc64le.c | 127 ++++++++++++++++----------
risu_reginfo_aarch64.h | 7 ++
risu_reginfo_arm.h | 6 ++
risu_reginfo_ppc64le.h | 6 ++
risugen | 2 +-
run_risu.sh | 53 +++++++++++
15 files changed, 805 insertions(+), 164 deletions(-)
create mode 100644 aarch64_simd_handcoded.risu.S
create mode 100755 generate_all.sh
create mode 100755 record_traces.sh
create mode 100755 run_risu.sh
--
2.11.0
- [Qemu-devel] [RISU PATCH v3 00/10] Record/payback patches,
Alex Bennée <=
- [Qemu-devel] [RISU PATCH v3 06/10] risu_aarch64: it's -> it is, Alex Bennée, 2016/12/09
- [Qemu-devel] [RISU PATCH v3 01/10] risu: a bit more verbosity when running, Alex Bennée, 2016/12/09
- [Qemu-devel] [RISU PATCH v3 09/10] new: record_traces.sh helper script, Alex Bennée, 2016/12/09
- [Qemu-devel] [RISU PATCH v3 03/10] risu: paramterise send/receive functions, Alex Bennée, 2016/12/09
- [Qemu-devel] [RISU PATCH v3 02/10] aarch64: add hand-coded risu skeleton for directed testing, Alex Bennée, 2016/12/09
- [Qemu-devel] [RISU PATCH v3 05/10] risu: add support compressed tracefiles, Alex Bennée, 2016/12/09