[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [RfC PATCH 00/10] vnc buffer handling
From: |
Peter Lieven |
Subject: |
Re: [Qemu-devel] [RfC PATCH 00/10] vnc buffer handling |
Date: |
Fri, 25 Sep 2015 11:56:18 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.4.0 |
Am 24.09.2015 um 10:41 schrieb Gerd Hoffmann:
> Hi,
>
> Here is a patch series to improve the vnc buffer handling. It picks up
> the qio_buffer patches from Daniel, adds move calls (move data from one
> buffer to another) and tracing, makes vnc use the new features. Net
> effect should be that (a) vnc copies less data around and (b) buffers
> don't grow forever.
>
> It's RfC because it depends on wip patches. My plan is to wait for
> Daniels patch series to be merged (which should obsolete patches #1+#2),
> then rebase and repost the series.
>
> Patches are also available from git:
> git://git.kraxel.org/qemu rebase/ui-vnc-next
>
> please test & review,
> Gerd
Looks fine except for the missing output handler due to the drop of vnc_write
in vnc_jobs_consume_buffer.
However, I would add the following optimization:
diff --git a/ui/vnc-jobs.c b/ui/vnc-jobs.c
index dfc5139..4b384b0 100644
--- a/ui/vnc-jobs.c
+++ b/ui/vnc-jobs.c
@@ -228,6 +232,11 @@ static int vnc_worker_thread_loop(VncJobQueue *queue)
vnc_unlock_output(job->vs);
goto disconnected;
}
+
+ if (qio_buffer_empty(&job->vs->output)) {
+ qio_buffer_move_empty(&vs.output, &job->vs->output);
+ }
+
The idea is that the vs->output is at the end of the queue and will be dropped
by the next qio_buffer_move_empty anyway.
So why not reuse it as worker thread output buffer? This reduces reallocs to
zero for me after the initial transmission of the desktop.
The buffers however still only allowed to grow during the ongoing session.
Peter
- [Qemu-devel] [RfC PATCH 08/10] name vnc buffers, (continued)
- [Qemu-devel] [RfC PATCH 08/10] name vnc buffers, Gerd Hoffmann, 2015/09/24
- [Qemu-devel] [RfC PATCH 05/10] io: add qio_buffer_move_empty, Gerd Hoffmann, 2015/09/24
- [Qemu-devel] [RfC PATCH 10/10] vnc-jobs: move buffer reset, use new buffer move, Gerd Hoffmann, 2015/09/24
- [Qemu-devel] [RfC PATCH 02/10] io: pull Buffer code out of VNC module, Gerd Hoffmann, 2015/09/24
- Re: [Qemu-devel] [RfC PATCH 00/10] vnc buffer handling, Daniel P. Berrange, 2015/09/24
- Re: [Qemu-devel] [RfC PATCH 00/10] vnc buffer handling,
Peter Lieven <=