On (Fri) 01 Mar 2013 [10:51:33], Paolo Bonzini wrote: > Il 01/03/2013 01:36, Eric Blake ha scritto: > > For fd passing to work, we have to use qemu_open() instead of raw > > open(). Is there any way to enforce that all files being opened by qemu > > go through the appropriate qemu_open() wrapper? > > > > Meanwhile, we have a quandary on the libvirt side of things: qemu 1.4 > > supports fd passing in general, but does not support it for rng. I > > guess the same is true for -blockdev - we don't (yet) have a way to do > > fd passing for backing files. Do we need some sort of QMP command that > > will let libvirt query for a particular device whether that device is > > known to support fd passing, so that libvirt can use fd passing for all > > supported devices, while falling back to older direct open()s, and to > > know which instance of qemu can safely have open() blocked at the > > SELinux or syscall blacklist level? > > Let's change open to qemu_open for 1.4.1, and declare rng only supported > in 1.4.1...
There are a few bugs that prevent the rng-random backend from working properly. I suspect we should move to using giochannel for the fd. https://bugzilla.redhat.com/show_bug.cgi?id=917884 (issuing 'cat /dev/random' in host hits an assert and kills guest) https://bugzilla.redhat.com/show_bug.cgi?id=917886 (default /dev/random backend doesn't send data to guest) https://bugzilla.redhat.com/show_bug.cgi?id=915381 (performance of backends sucks) Amit