[Spice-devel] [PATCH 07/10] worker: move some compress stats to display
Fabiano FidĂȘncio
fidencio at redhat.com
Thu Nov 5 14:04:21 PST 2015
On Thu, Nov 5, 2015 at 2:23 PM, Frediano Ziglio <fziglio at redhat.com> wrote:
> From: Marc-André Lureau <marcandre.lureau at gmail.com>
>
> ---
> server/display-channel.c | 100 +++++++++++++++++++++++++++++++++++++++++++
> server/display-channel.h | 4 ++
> server/red_worker.c | 108 ++---------------------------------------------
> 3 files changed, 108 insertions(+), 104 deletions(-)
>
> diff --git a/server/display-channel.c b/server/display-channel.c
> index 3dc5a94..5deab13 100644
> --- a/server/display-channel.c
> +++ b/server/display-channel.c
> @@ -16,6 +16,106 @@
> */
> #include "display-channel.h"
>
> +void display_channel_compress_stats_reset(DisplayChannel *display_channel)
> +{
> + spice_return_if_fail(display_channel);
> +
> +#ifdef COMPRESS_STAT
> + stat_reset(&worker->display_channel->quic_stat);
> + stat_reset(&worker->display_channel->lz_stat);
> + stat_reset(&worker->display_channel->glz_stat);
> + stat_reset(&worker->display_channel->jpeg_stat);
> + stat_reset(&worker->display_channel->zlib_glz_stat);
> + stat_reset(&worker->display_channel->jpeg_alpha_stat);
> + stat_reset(&worker->display_channel->lz4_stat);
> +#endif
> +}
> +
> +void display_channel_compress_stats_print(const DisplayChannel *display_channel)
> +{
> + spice_return_if_fail(display_channel);
> +
> +#ifdef COMPRESS_STAT
> + uint64_t glz_enc_size;
> +
> + glz_enc_size = display_channel->enable_zlib_glz_wrap ?
> + display_channel->zlib_glz_stat.comp_size :
> + display_channel->glz_stat.comp_size;
> +
> + spice_info("==> Compression stats for display %u", display_channel->common.id);
> + spice_info("Method \t count \torig_size(MB)\tenc_size(MB)\tenc_time(s)");
> + spice_info("QUIC \t%8d\t%13.2f\t%12.2f\t%12.2f",
> + display_channel->quic_stat.count,
> + stat_byte_to_mega(display_channel->quic_stat.orig_size),
> + stat_byte_to_mega(display_channel->quic_stat.comp_size),
> + stat_cpu_time_to_sec(display_channel->quic_stat.total)
> + );
> + spice_info("GLZ \t%8d\t%13.2f\t%12.2f\t%12.2f",
> + display_channel->glz_stat.count,
> + stat_byte_to_mega(display_channel->glz_stat.orig_size),
> + stat_byte_to_mega(display_channel->glz_stat.comp_size),
> + stat_cpu_time_to_sec(display_channel->glz_stat.total)
> + );
> + spice_info("ZLIB GLZ \t%8d\t%13.2f\t%12.2f\t%12.2f",
> + display_channel->zlib_glz_stat.count,
> + stat_byte_to_mega(display_channel->zlib_glz_stat.orig_size),
> + stat_byte_to_mega(display_channel->zlib_glz_stat.comp_size),
> + stat_cpu_time_to_sec(display_channel->zlib_glz_stat.total)
> + );
> + spice_info("LZ \t%8d\t%13.2f\t%12.2f\t%12.2f",
> + display_channel->lz_stat.count,
> + stat_byte_to_mega(display_channel->lz_stat.orig_size),
> + stat_byte_to_mega(display_channel->lz_stat.comp_size),
> + stat_cpu_time_to_sec(display_channel->lz_stat.total)
> + );
> + spice_info("JPEG \t%8d\t%13.2f\t%12.2f\t%12.2f",
> + display_channel->jpeg_stat.count,
> + stat_byte_to_mega(display_channel->jpeg_stat.orig_size),
> + stat_byte_to_mega(display_channel->jpeg_stat.comp_size),
> + stat_cpu_time_to_sec(display_channel->jpeg_stat.total)
> + );
> + spice_info("JPEG-RGBA\t%8d\t%13.2f\t%12.2f\t%12.2f",
> + display_channel->jpeg_alpha_stat.count,
> + stat_byte_to_mega(display_channel->jpeg_alpha_stat.orig_size),
> + stat_byte_to_mega(display_channel->jpeg_alpha_stat.comp_size),
> + stat_cpu_time_to_sec(display_channel->jpeg_alpha_stat.total)
> + );
> + spice_info("LZ4 \t%8d\t%13.2f\t%12.2f\t%12.2f",
> + display_channel->lz4_stat.count,
> + stat_byte_to_mega(display_channel->lz4_stat.orig_size),
> + stat_byte_to_mega(display_channel->lz4_stat.comp_size),
> + stat_cpu_time_to_sec(display_channel->lz4_stat.total)
> + );
> + spice_info("-------------------------------------------------------------------");
> + spice_info("Total \t%8d\t%13.2f\t%12.2f\t%12.2f",
> + display_channel->lz_stat.count + display_channel->glz_stat.count +
> + display_channel->quic_stat.count +
> + display_channel->jpeg_stat.count +
> + display_channel->lz4_stat.count +
> + display_channel->jpeg_alpha_stat.count,
> + stat_byte_to_mega(display_channel->lz_stat.orig_size +
> + display_channel->glz_stat.orig_size +
> + display_channel->quic_stat.orig_size +
> + display_channel->jpeg_stat.orig_size +
> + display_channel->lz4_stat.orig_size +
> + display_channel->jpeg_alpha_stat.orig_size),
> + stat_byte_to_mega(display_channel->lz_stat.comp_size +
> + glz_enc_size +
> + display_channel->quic_stat.comp_size +
> + display_channel->jpeg_stat.comp_size +
> + display_channel->lz4_stat.comp_size +
> + display_channel->jpeg_alpha_stat.comp_size),
> + stat_cpu_time_to_sec(display_channel->lz_stat.total +
> + display_channel->glz_stat.total +
> + display_channel->zlib_glz_stat.total +
> + display_channel->quic_stat.total +
> + display_channel->jpeg_stat.total +
> + display_channel->lz4_stat.total +
> + display_channel->jpeg_alpha_stat.total)
> + );
> +#endif
> +}
> +
> DisplayChannelClient *dcc_new(DisplayChannel *display,
> RedClient *client, RedsStream *stream,
> int mig_target,
> diff --git a/server/display-channel.h b/server/display-channel.h
> index d6d65e0..2f9b33b 100644
> --- a/server/display-channel.h
> +++ b/server/display-channel.h
> @@ -328,6 +328,7 @@ MonitorsConfig* monitors_config_new (QXLHead *h
> MonitorsConfig * monitors_config_ref (MonitorsConfig *config);
> void monitors_config_unref (MonitorsConfig *config);
>
> +/* TODO: move to .c */
I wouldn't add this comment here.
> struct DisplayChannel {
> CommonChannel common; // Must be the first thing
>
> @@ -360,4 +361,7 @@ struct DisplayChannel {
> #endif
> };
>
> +void display_channel_compress_stats_print (const DisplayChannel *display);
> +void display_channel_compress_stats_reset (DisplayChannel *display);
> +
> #endif /* DISPLAY_CHANNEL_H_ */
> diff --git a/server/red_worker.c b/server/red_worker.c
> index b7de808..2ec05f1 100644
> --- a/server/red_worker.c
> +++ b/server/red_worker.c
> @@ -602,95 +602,6 @@ void drawable_pipe_item_unref(DrawablePipeItem *dpi)
> free(dpi);
> }
>
> -
> -#ifdef COMPRESS_STAT
> -static void print_compress_stats(DisplayChannel *display_channel)
> -{
> - uint64_t glz_enc_size;
> -
> - if (!display_channel) {
> - return;
> - }
> -
> - glz_enc_size = display_channel->enable_zlib_glz_wrap ?
> - display_channel->zlib_glz_stat.comp_size :
> - display_channel->glz_stat.comp_size;
> -
> - spice_info("==> Compression stats for display %u", display_channel->common.base.id);
> - spice_info("Method \t count \torig_size(MB)\tenc_size(MB)\tenc_time(s)");
> - spice_info("QUIC \t%8d\t%13.2f\t%12.2f\t%12.2f",
> - display_channel->quic_stat.count,
> - stat_byte_to_mega(display_channel->quic_stat.orig_size),
> - stat_byte_to_mega(display_channel->quic_stat.comp_size),
> - stat_cpu_time_to_sec(display_channel->quic_stat.total)
> - );
> - spice_info("GLZ \t%8d\t%13.2f\t%12.2f\t%12.2f",
> - display_channel->glz_stat.count,
> - stat_byte_to_mega(display_channel->glz_stat.orig_size),
> - stat_byte_to_mega(display_channel->glz_stat.comp_size),
> - stat_cpu_time_to_sec(display_channel->glz_stat.total)
> - );
> - spice_info("ZLIB GLZ \t%8d\t%13.2f\t%12.2f\t%12.2f",
> - display_channel->zlib_glz_stat.count,
> - stat_byte_to_mega(display_channel->zlib_glz_stat.orig_size),
> - stat_byte_to_mega(display_channel->zlib_glz_stat.comp_size),
> - stat_cpu_time_to_sec(display_channel->zlib_glz_stat.total)
> - );
> - spice_info("LZ \t%8d\t%13.2f\t%12.2f\t%12.2f",
> - display_channel->lz_stat.count,
> - stat_byte_to_mega(display_channel->lz_stat.orig_size),
> - stat_byte_to_mega(display_channel->lz_stat.comp_size),
> - stat_cpu_time_to_sec(display_channel->lz_stat.total)
> - );
> - spice_info("JPEG \t%8d\t%13.2f\t%12.2f\t%12.2f",
> - display_channel->jpeg_stat.count,
> - stat_byte_to_mega(display_channel->jpeg_stat.orig_size),
> - stat_byte_to_mega(display_channel->jpeg_stat.comp_size),
> - stat_cpu_time_to_sec(display_channel->jpeg_stat.total)
> - );
> - spice_info("JPEG-RGBA\t%8d\t%13.2f\t%12.2f\t%12.2f",
> - display_channel->jpeg_alpha_stat.count,
> - stat_byte_to_mega(display_channel->jpeg_alpha_stat.orig_size),
> - stat_byte_to_mega(display_channel->jpeg_alpha_stat.comp_size),
> - stat_cpu_time_to_sec(display_channel->jpeg_alpha_stat.total)
> - );
> - spice_info("LZ4 \t%8d\t%13.2f\t%12.2f\t%12.2f",
> - display_channel->lz4_stat.count,
> - stat_byte_to_mega(display_channel->lz4_stat.orig_size),
> - stat_byte_to_mega(display_channel->lz4_stat.comp_size),
> - stat_cpu_time_to_sec(display_channel->lz4_stat.total)
> - );
> - spice_info("-------------------------------------------------------------------");
> - spice_info("Total \t%8d\t%13.2f\t%12.2f\t%12.2f",
> - display_channel->lz_stat.count + display_channel->glz_stat.count +
> - display_channel->quic_stat.count +
> - display_channel->jpeg_stat.count +
> - display_channel->lz4_stat.count +
> - display_channel->jpeg_alpha_stat.count,
> - stat_byte_to_mega(display_channel->lz_stat.orig_size +
> - display_channel->glz_stat.orig_size +
> - display_channel->quic_stat.orig_size +
> - display_channel->jpeg_stat.orig_size +
> - display_channel->lz4_stat.orig_size +
> - display_channel->jpeg_alpha_stat.orig_size),
> - stat_byte_to_mega(display_channel->lz_stat.comp_size +
> - glz_enc_size +
> - display_channel->quic_stat.comp_size +
> - display_channel->jpeg_stat.comp_size +
> - display_channel->lz4_stat.comp_size +
> - display_channel->jpeg_alpha_stat.comp_size),
> - stat_cpu_time_to_sec(display_channel->lz_stat.total +
> - display_channel->glz_stat.total +
> - display_channel->zlib_glz_stat.total +
> - display_channel->quic_stat.total +
> - display_channel->jpeg_stat.total +
> - display_channel->lz4_stat.total +
> - display_channel->jpeg_alpha_stat.total)
> - );
> -}
> -
> -#endif
> -
> QXLInstance* red_worker_get_qxl(RedWorker *worker)
> {
> spice_return_val_if_fail(worker != NULL, NULL);
> @@ -7941,9 +7852,7 @@ static void display_channel_client_on_disconnect(RedChannelClient *rcc)
> worker = common->worker;
> display_channel = (DisplayChannel *)rcc->channel;
> spice_assert(display_channel == worker->display_channel);
> -#ifdef COMPRESS_STAT
> - print_compress_stats(display_channel);
> -#endif
> + display_channel_compress_stats_print(display_channel);
> pixmap_cache_unref(dcc->pixmap_cache);
> dcc->pixmap_cache = NULL;
> red_release_glz(dcc);
> @@ -9949,18 +9858,9 @@ void handle_dev_set_compression(void *opaque, void *payload)
> default:
> spice_warning("ic invalid");
> }
> -#ifdef COMPRESS_STAT
> - print_compress_stats(worker->display_channel);
> - if (worker->display_channel) {
> - stat_reset(&worker->display_channel->quic_stat);
> - stat_reset(&worker->display_channel->lz_stat);
> - stat_reset(&worker->display_channel->glz_stat);
> - stat_reset(&worker->display_channel->jpeg_stat);
> - stat_reset(&worker->display_channel->zlib_glz_stat);
> - stat_reset(&worker->display_channel->jpeg_alpha_stat);
> - stat_reset(&worker->display_channel->lz4_stat);
> - }
> -#endif
> +
> + display_channel_compress_stats_print(worker->display_channel);
> + display_channel_compress_stats_reset(worker->display_channel);
> }
>
> void handle_dev_set_streaming_video(void *opaque, void *payload)
> --
> 2.4.3
>
> _______________________________________________
> Spice-devel mailing list
> Spice-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/spice-devel
Looks good. ACK!
More information about the Spice-devel
mailing list