On Tue, 2017-02-14 at 15:51 +0000, Frediano Ziglio wrote: > Allows to see compressed/uncompressed ratio > > Signed-off-by: Frediano Ziglio <fziglio@xxxxxxxxxx> > --- > server/spicevmc.c | 17 +++++++++++++++++ > 1 file changed, 17 insertions(+) > > Ping. > > diff --git a/server/spicevmc.c b/server/spicevmc.c > index 9bcbada..174a04a 100644 > --- a/server/spicevmc.c > +++ b/server/spicevmc.c > @@ -114,6 +114,8 @@ struct RedVmcChannel > RedVmcPipeItem *pipe_item; > RedCharDeviceWriteBuffer *recv_from_client_buf; > uint8_t port_opened; > + RedStatCounter in_data, in_compressed, in_decompressed; > + RedStatCounter out_data, out_compressed, out_uncompressed; I see we don't have anything about this in our coding style guidelines, but I generally don't like having multiple variables declared on a single line. Otherwise seems fine Acked-by: Jonathon Jongsma <jjongsma@xxxxxxxxxx> > }; > > struct RedVmcChannelClass > @@ -194,6 +196,15 @@ red_vmc_channel_constructed(GObject *object) > client_cbs.connect = spicevmc_connect; > red_channel_register_client_cbs(RED_CHANNEL(self), &client_cbs, > NULL); > > + red_channel_init_stat_node(RED_CHANNEL(self), NULL, "spicevmc"); > + const RedStatNode *stat = > red_channel_get_stat_node(RED_CHANNEL(self)); > + stat_init_counter(&self->in_data, reds, stat, "in_data", TRUE); > + stat_init_counter(&self->in_compressed, reds, stat, > "in_compressed", TRUE); > + stat_init_counter(&self->in_decompressed, reds, stat, > "in_decompressed", TRUE); > + stat_init_counter(&self->out_data, reds, stat, "out_data", > TRUE); > + stat_init_counter(&self->out_compressed, reds, stat, > "out_compressed", TRUE); > + stat_init_counter(&self->out_uncompressed, reds, stat, > "out_uncompressed", TRUE); > + > #ifdef USE_LZ4 > red_channel_set_cap(RED_CHANNEL(self), > SPICE_SPICEVMC_CAP_DATA_COMPRESS_LZ4); > #endif > @@ -305,6 +316,8 @@ static RedVmcPipeItem* > try_compress_lz4(RedVmcChannel *channel, int n, RedVmcPip > BUF_SIZE); > > if (compressed_data_count > 0 && compressed_data_count < n) { > + stat_inc_counter(channel->out_uncompressed, n); > + stat_inc_counter(channel->out_compressed, > compressed_data_count); > msg_item_compressed->type = SPICE_DATA_COMPRESSION_TYPE_LZ4; > msg_item_compressed->uncompressed_data_size = n; > msg_item_compressed->buf_used = compressed_data_count; > @@ -355,6 +368,7 @@ static RedPipeItem > *spicevmc_chardev_read_msg_from_dev(RedCharDevice *self, > return &msg_item_compressed->base; > } > #endif > + stat_inc_counter(channel->out_data, n); > msg_item->uncompressed_data_size = n; > msg_item->buf_used = n; > return &msg_item->base; > @@ -532,6 +546,8 @@ static int handle_compressed_msg(RedVmcChannel > *channel, RedChannelClient *rcc, > (char > *)decompressed, > compressed_data_msg > ->compressed_size, > compressed_data_msg > ->uncompressed_size); > + stat_inc_counter(channel->in_compressed, > compressed_data_msg->compressed_size); > + stat_inc_counter(channel->in_decompressed, > decompressed_size); > break; > } > #endif > @@ -566,6 +582,7 @@ static int > spicevmc_red_channel_client_handle_message_parsed(RedChannelClient *r > switch (type) { > case SPICE_MSGC_SPICEVMC_DATA: > spice_assert(channel->recv_from_client_buf->buf == msg); > + stat_inc_counter(channel->in_data, size); > channel->recv_from_client_buf->buf_used = size; > red_char_device_write_buffer_add(channel->chardev, channel- > >recv_from_client_buf); > channel->recv_from_client_buf = NULL; _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel