[Spice-devel] [PATCH v4 0/6] Implement record/replay

Pavel Grunt pgrunt at redhat.com
Wed Aug 19 07:56:06 PDT 2015


Hi Frediano,

On Wed, 2015-08-19 at 15:39 +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.
> 
> I would remove server/make_recorder.sh file, is not used.
> 
> Looks like the spicy-stats mentioned in a comment was removed from
> spice-gtk package. Also "Knows Problems" comment section seems
> outdated.

spicy-stats is in src/ directory of spice-gtk
make -C src spicy-stats

cheers,
Pavel

> 
> 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 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/make_recorder.sh         |   13 +
>  server/red_record_qxl.c         |  876 +++++++++++++++++++++++++++
>  server/red_record_qxl.h         |   36 ++
>  server/red_replay_qxl.c         | 1247 
> +++++++++++++++++++++++++++++++++++++++
>  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 +++++++++++
>  13 files changed, 2723 insertions(+), 193 deletions(-)
>  create mode 100755 server/make_recorder.sh
>  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