qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [RISU PATCH v3 00/10] Record/payback patches
@ 2016-12-09 11:48 Alex Bennée
  2016-12-09 11:48 ` [Qemu-devel] [RISU PATCH v3 01/10] risu: a bit more verbosity when running Alex Bennée
                   ` (11 more replies)
  0 siblings, 12 replies; 20+ messages in thread
From: Alex Bennée @ 2016-12-09 11:48 UTC (permalink / raw)
  To: peter.maydell; +Cc: qemu-devel, joserz, Alex Bennée

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

^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2016-12-23  1:41 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-12-09 11:48 [Qemu-devel] [RISU PATCH v3 00/10] Record/payback patches Alex Bennée
2016-12-09 11:48 ` [Qemu-devel] [RISU PATCH v3 01/10] risu: a bit more verbosity when running Alex Bennée
2016-12-16 18:27   ` Peter Maydell
2016-12-09 11:48 ` [Qemu-devel] [RISU PATCH v3 02/10] aarch64: add hand-coded risu skeleton for directed testing Alex Bennée
2016-12-16 18:33   ` Peter Maydell
2016-12-09 11:48 ` [Qemu-devel] [RISU PATCH v3 03/10] risu: paramterise send/receive functions Alex Bennée
2016-12-16 18:54   ` Peter Maydell
2016-12-09 11:48 ` [Qemu-devel] [RISU PATCH v3 04/10] risu: add simple trace and replay support Alex Bennée
2016-12-16 19:00   ` Peter Maydell
2016-12-09 11:48 ` [Qemu-devel] [RISU PATCH v3 05/10] risu: add support compressed tracefiles Alex Bennée
2016-12-16 19:06   ` Peter Maydell
2016-12-09 11:48 ` [Qemu-devel] [RISU PATCH v3 06/10] risu_aarch64: it's -> it is Alex Bennée
2016-12-16 18:36   ` Peter Maydell
2016-12-09 11:48 ` [Qemu-devel] [RISU PATCH v3 07/10] risugen: remove grocer's apostrophe from REs Alex Bennée
2016-12-16 18:37   ` Peter Maydell
2016-12-09 11:48 ` [Qemu-devel] [RISU PATCH v3 08/10] new: generate_all.sh script Alex Bennée
2016-12-09 11:48 ` [Qemu-devel] [RISU PATCH v3 09/10] new: record_traces.sh helper script Alex Bennée
2016-12-09 11:48 ` [Qemu-devel] [RISU PATCH v3 10/10] new: run_risu.sh script Alex Bennée
2016-12-16 19:09 ` [Qemu-devel] [RISU PATCH v3 00/10] Record/payback patches Peter Maydell
2016-12-23  1:41 ` joserz

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).