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@xxxxxxxxxxxx | Rpmfind RPM search engine http://rpmfind.net/ http://veillard.com/ | virtualization library http://libvirt.org/ -- Libvir-list mailing list Libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list