[Spice-devel] [PATCH v5 0/6] Implement record/replay
Jonathon Jongsma
jjongsma at redhat.com
Fri Aug 21 08:29:17 PDT 2015
ACK series with a couple minor comments on commit messages (patch #5 and
#6)
(sorry, one of my comments was on a v4 patch, I wasn't paying close
enough attention)
On Fri, 2015-08-21 at 09:46 +0100, Frediano Ziglio wrote:
> With this series of patches is possible to record what happens to
> spice-server and replay it.
> The main purpose is debugging.
> These are part of a long series of patches.
>
> Started playing with it quite a lot and are very useful for profiling
> and debugging.
> Actually valgrind shows some leaks due to a missing proper
> spice_server_destroy function (actually does not much). This is
> not however causing problems using with Qemu/Xspice.
>
> Many formatting strings use signed (%d) numbers however this does not
> make sense for some data (like binary lengths!), IMHO should be converted
> to unsigned (%u).
>
> Changes from v4:
> - fix positive stripe surfaces;
> - removed server/make_recorder.sh.
>
> Changes from v3:
> - added a missing patch causing problems, removed my former fix,
> tested again.
>
> Changes from v2:
> - more strong tests (using with client) revealed that loop code
> is not working as expected as there were 2 loops, one for commands
> and another for spice event however only commands one was running
> leading to client not connecting or working. Added a new patch but I
> think to squash into second one and remove comment for glib loop;
> - renamed replay executable to spice-server-replay (still not
> installed);
> - renamed dispatch handler;
> - add a patch to support filtering the output. This avoid to add code
> to compress the output as compression can be done with a filter
> (setting SPICE_WORKER_RECORD_FILTER environmen to "gzip" just works
> for me compression ratio is about 9% so quite good). This make it
> automatically use more cpu cores and support multiple compressors.
> I would remove code to support zlib compression if this patch is
> accepted. Also we should update link to xz file then.
> Probably would be better to define a
> gboolean red_record_open_file(FILE **file_out)
> function instead which manage even the SPICE_WORKER_RECORD_FILENAME
> environment and reduce red_worker.c changes;
> - remove useless check for record_fd;
> - fix recording images if stripe is negative.
>
> Changes from v1:
> - merged some later pacthes by Marc-André Lureau;
> - removed first patch that added an argument to normal callbacks;
> - removed record_clock_id, not use anymore;
> - fixed start of record file;
> - register callback only if we need to register something;
> - moved exported symbols to new version, removed old ones;
> - some typos;
> - fixed some comments for program arguments;
> - use glib functions for debug/warnings.
>
>
> Alon Levy (4):
> server/dispatcher: add extra_dispatcher, hack for red_record
> server/red_{record, replay}.[ch]: introduce
> server/red_worker: record to SPICE_WORKER_RECORD_FILENAME
> server/tests/replay: introduce
>
> Frediano Ziglio (1):
> Allow to specify a filter for record output
>
> Marc-André Lureau (1):
> tests: use glib main loop
>
> server/Makefile.am | 2 +
> server/dispatcher.c | 10 +
> server/dispatcher.h | 12 +
> server/red_record_qxl.c | 877 +++++++++++++++++++++++++++
> server/red_record_qxl.h | 36 ++
> server/red_replay_qxl.c | 1243 +++++++++++++++++++++++++++++++++++++++
> server/red_replay_qxl.h | 34 ++
> server/red_worker.c | 40 +-
> server/spice-server.syms | 4 +
> server/tests/Makefile.am | 11 +
> server/tests/basic_event_loop.c | 285 +++------
> server/tests/replay.c | 346 +++++++++++
> 12 files changed, 2707 insertions(+), 193 deletions(-)
> create mode 100644 server/red_record_qxl.c
> create mode 100644 server/red_record_qxl.h
> create mode 100644 server/red_replay_qxl.c
> create mode 100644 server/red_replay_qxl.h
> create mode 100644 server/tests/replay.c
>
More information about the Spice-devel
mailing list