qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v3 0/2] Threaded VNC server
@ 2010-06-10  5:46 Corentin Chary
  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
  0 siblings, 2 replies; 3+ messages in thread
From: Corentin Chary @ 2010-06-10  5:46 UTC (permalink / raw)
  To: qemu-devel; +Cc: Corentin Chary, Anthony Liguori, Alexander Graf, Adam Litke

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

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2010-06-10  5:47 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-06-10  5:46 [Qemu-devel] [PATCH v3 0/2] Threaded VNC server Corentin Chary
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

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).