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(a)veillard.com | Rpmfind RPM search engine
http://rpmfind.net/
http://veillard.com/ | virtualization library
http://libvirt.org/