From: Corentin Chary <corentincj@iksaif.net>
To: qemu-devel@nongnu.org
Cc: Corentin Chary <corentincj@iksaif.net>,
Anthony Liguori <aliguori@linux.vnet.ibm.com>,
Alexander Graf <agraf@suse.de>, Adam Litke <agl@us.ibm.com>
Subject: [Qemu-devel] [PATCH v3 0/2] Threaded VNC server
Date: Thu, 10 Jun 2010 07:46:41 +0200 [thread overview]
Message-ID: <1276148803-4796-1-git-send-email-corentincj@iksaif.net> (raw)
Hi,
This series add a threaded VNC server and should be applied on top on my previous patch set (adding tight encoding).
The first patch add some functions to qemu-thread. The last oneis the threaded VNC server.
Thanks
Since v1:
* Moved locks from VncState to VncDisplay because it's only used in vnc_refresh
* Use trylock in vnc_refresh. If there is an encoding task still running, reschedule the refresh.
This really boost performances and make the vnc server truly asynchroneous. The only blocking
lock is the output_mutex which is only held during a simple memcpy().
* Fixed issues found by Paolo, except the exit condition, mainly because we can only have
one queue per VncState (due to zstreams), so this is not really an issue.
* Rebased on top of jpeg and ui/ patchs
Since v2:
* renamed vnc-jobs.c vnc-jobs-async.c
* added vnc-jobs.h, refactor functions declarations, export vnc_[un]lock_display()
and vnc_[un]lock_output() and use them in vnc-jobs-async.c (reported by Avi)
* rework exit condition for vnc_worker_thread_loop (Paolo)
* abord -> abort (Paolo)
* call qemu_thread_self() (Paolo)
* Coding style issues (Alexander)
* Move from empty macros to empty statis inline (Alexander)
Alexander also suggested me to use stw_be_p() defined in cpu-all.h,
but when I tried to include cpu-all.h, it broke every thing. Anyway it can
be done later since this code is already present in vnc.c.
Also vnc_async_encoding_start() could be cleaner if encoding members where
in a specific structure, but this is a lot of changes, and as I'm also working
on encodings, I want this patch to be easy to rebase. So I'll do as soon as
the VNC server is merged.
Corentin Chary (2):
qemu-thread: add qemu_mutex/cond_destroy and qemu_mutex_exit
vnc: threaded VNC server
Makefile.objs | 7 +-
configure | 13 ++
qemu-thread.c | 22 +++
qemu-thread.h | 4 +
ui/vnc-jobs-async.c | 357 +++++++++++++++++++++++++++++++++++++++++++++++++++
ui/vnc-jobs-sync.c | 73 +++++++++++
ui/vnc-jobs.h | 87 +++++++++++++
ui/vnc.c | 144 +++++++++++++++++----
ui/vnc.h | 49 +++++++
9 files changed, 731 insertions(+), 25 deletions(-)
create mode 100644 ui/vnc-jobs-async.c
create mode 100644 ui/vnc-jobs-sync.c
create mode 100644 ui/vnc-jobs.h
next reply other threads:[~2010-06-10 5:46 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-06-10 5:46 Corentin Chary [this message]
2010-06-10 5:46 ` [Qemu-devel] [PATCH v3 1/2] qemu-thread: add qemu_mutex/cond_destroy and qemu_mutex_exit Corentin Chary
2010-06-10 5:46 ` [Qemu-devel] [PATCH v3 2/2] vnc: threaded VNC server Corentin Chary
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1276148803-4796-1-git-send-email-corentincj@iksaif.net \
--to=corentincj@iksaif.net \
--cc=agl@us.ibm.com \
--cc=agraf@suse.de \
--cc=aliguori@linux.vnet.ibm.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).