[libvirt] PATCH: 26/28: Threaded dispatch for the libvirt daemon

Daniel Veillard veillard at redhat.com
Wed Dec 3 15:04:43 UTC 2008


On Mon, Dec 01, 2008 at 12:21:10AM +0000, Daniel P. Berrange wrote:
> This patch makes the libvirtd daemon itself use mutliple threads.
> Each individual client is still serialized, but mutliple clients
> can now be handled in parallel. This introduces a pool of worker
> threads to handle RPC call processing, while the main thread just
> runs the event loop and handles network I/O.

  okay, the whole point of the exercise :-)

> diff --git a/qemud/THREADING.txt b/qemud/THREADING.txt
> new file mode 100644
> --- /dev/null
> +++ b/qemud/THREADING.txt

  good :-)

> + - The event loop has its own self-contained lock. You can ignore
> +   this as a caller of virEvent APIs.

  still worth explaining as this is rather complex

[...]

   that patch is hard, really ! I tried to follow the quemu side of it
and a bit of the network handling side. The problem is that the model is
rather complex and the compiler can't help us if we made any mistake.
And locking errors could go unnotified for ages before biting us.
  Still the best is probably to push this and try it as much as possible
to assert the status, just the eyeball review will clearly not be
sufficient. So +1 but we need much testing !

Daniel

-- 
Daniel Veillard      | libxml Gnome XML XSLT toolkit  http://xmlsoft.org/
daniel at veillard.com  | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library  http://libvirt.org/




More information about the libvir-list mailing list