[libvirt] In libxl_driver, how to lock/unlock objects while doing an operation that runs for a long time?

In the discussion : http://thread.gmane.org/gmane.comp.emulators.libvirt/53534 People mentioned about long-term operations' LOCKs there. It seems that, in libxl_driver, certain opeations may hold a lock for too long, thus other operations, even those just do query jobs, would be blocked. In qemu_driver, there seems to be a more complexy way to solve this problem, by employing a condition variable. My question is : Is "Fixing such problem in libxl_driver" in our todo-list? If yes, what's the detailed solution? Will that be similar to qemu's CONDITION VARIABLE method?

On Thu, May 10, 2012 at 11:20:20PM +0800, Oscar Ben wrote:
In the discussion : http://thread.gmane.org/gmane.comp.emulators.libvirt/53534
People mentioned about long-term operations' LOCKs there. It seems that, in libxl_driver, certain opeations may hold a lock for too long, thus other operations, even those just do query jobs, would be blocked.
In qemu_driver, there seems to be a more complexy way to solve this problem, by employing a condition variable.
Yep, that's pretty much the approach we'd want to take for libxl too I believe.
My question is : Is "Fixing such problem in libxl_driver" in our todo-list?
Yes
If yes, what's the detailed solution? Will that be similar to qemu's CONDITION VARIABLE method?
Yes Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|

Daniel P. Berrange wrote:
On Thu, May 10, 2012 at 11:20:20PM +0800, Oscar Ben wrote:
In the discussion : http://thread.gmane.org/gmane.comp.emulators.libvirt/53534
People mentioned about long-term operations' LOCKs there. It seems that, in libxl_driver, certain opeations may hold a lock for too long, thus other operations, even those just do query jobs, would be blocked.
In qemu_driver, there seems to be a more complexy way to solve this problem, by employing a condition variable.
Yep, that's pretty much the approach we'd want to take for libxl too I believe.
Agreed. Chunyan, the author of the patch Oscar mentions, is on maternity leave now. Bamvor (cc'd) is becoming familiar with the patch, review comments, etc. and will submit a new version. Part of that work will need to include addressing the locking issues noted in the thread. Regards, Jim
participants (3)
-
Daniel P. Berrange
-
Jim Fehlig
-
Oscar Ben