
On Fri, Mar 21, 2008 at 05:05:43PM +0000, Daniel P. Berrange wrote:
Yes, this is a fundamentally stateful driver, so should run in the context of the daemon as the QEMU driver does. Loading & unloading the persistent state in the open/close method is hacking around the capabilities we already provide for stateful drivers, and it is not safe to have multiple libvirt clients reading/writing the same config files without any form of locking. By using the libvirt daemon stateful driver support we avoid the locking issues, avoid the synchronization problems between multiple clients, and avoid having to have the fork()d container re-write the config files to include the PID and so on.
The following patches make the driver properly integrate with the stateful driver APIs. It also changes the config files to be named by on VM name instead of UUID, since this is what the QEMU driver does & its more user friendly. It also adds the CLONE_XXX constants since they have not yet been added to the libc sched.h file. IMHO we should enable the driver by default, since it can already probe for availability at runtime. Finally it also fixes a typo where it wrote 'linuxcontainer' as the domain type in the config file instead of 'lxc'.
I applied the patch in CVs since it was agreed upon and needed for further developments. Daniel -- Red Hat Virtualization group http://redhat.com/virtualization/ Daniel Veillard | virtualization library http://libvirt.org/ veillard@redhat.com | libxml GNOME XML XSLT toolkit http://xmlsoft.org/ http://veillard.com/ | Rpmfind RPM search engine http://rpmfind.net/