qemu-devel
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]