On 12/23/2010 05:49 AM, Paolo Bonzini wrote:
On 12/22/2010 11:27 PM, Eric Blake wrote:
>
https://bugzilla.redhat.com/show_bug.cgi?id=620363
>
> When using -incoming stdio or -incoming exec:cat, qemu keeps the
> stdin fd open long after the migration is complete. Not to
> mention that exec:cat is horribly inefficient, by doubling the
> I/O and going through a popen interface in qemu.
>
> The new -incoming fd: of qemu 0.12.0 closes the fd after using
> it, and allows us to bypass an intermediary cat process for
> less I/O.
>
> It would also be possible to fix this bug for qemu< 0.12.0, by
> creating a dummy 'cat' process that reads from real fd and writes to a
> pipe, and pass the other end of the pipe into -incoming exec:cat or
> -incoming stdio, at the expense of even more I/O. I don't know if
> that is worth the patch, though.
Since you are at it, you may also want to replace the usage of netcat
and Unix sockets with "-incoming fd:" and a one-way pipe.
Not sure it's worth it. Is unix:path any less efficient than creating a
one-way pipe for use by fd:n? Also, we can't replace netcat; the use of
'-incoming "exec:nc -lU path"' is only used in libvirt that predates
'-incoming unix:path', which also happens to predate '-incoming fd:n'.
--
Eric Blake eblake(a)redhat.com +1-801-349-2682
Libvirt virtualization library
http://libvirt.org