[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v3 0/2] Threaded VNC server
From: |
Corentin Chary |
Subject: |
[Qemu-devel] [PATCH v3 0/2] Threaded VNC server |
Date: |
Thu, 10 Jun 2010 07:46:41 +0200 |
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
- [Qemu-devel] [PATCH v3 0/2] Threaded VNC server,
Corentin Chary <=