On Tue, Feb 26, 2013 at 09:36:30AM -0500, Colin Walters wrote:
So Richard recently blogged about running many libguestfs mounts in
parallel.
I actually want parallelization in the other way; I use guestmount to
access a disk image, and my program is multithreaded. It does
read/write and most especially calls to link() and fdatasync() from
threads.
However, this all ends up being serialized, because the guestfsd
protocol is synchronous, and the daemon side is single-threaded.
Related to this, the qemu instance is always booted with only one
vCPU.
Have there been any thoughts on fixing this?
Yes. However it requires changes to the virtio-serial protocol or
perhaps its entire replacement with VMware's vsock protocol (currently
being discussed in upstream qemu). Without this, it's pretty clunky
to open more than one connection from the library to the appliance.
It would also need guestfsd to become multi-threaded. That's not so
much of a problem (although it's certainly a bit of work), but solving
the protocol problem would have to be done first.
Rich.
--
Richard Jones, Virtualization Group, Red Hat
http://people.redhat.com/~rjones
Fedora Windows cross-compiler. Compile Windows programs, test, and
build Windows installers. Over 100 libraries supported.
http://fedoraproject.org/wiki/MinGW