All of lore.kernel.org
 help / color / mirror / Atom feed
From: Anthony Liguori <anthony@codemonkey.ws>
To: Eric Blake <eblake@redhat.com>,
	"qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
	Stefan Berger <stefanb@linux.vnet.ibm.com>
Subject: Re: [Qemu-devel] virtio-rng and fd passing
Date: Fri, 01 Mar 2013 14:04:05 -0600	[thread overview]
Message-ID: <87k3pqzy2y.fsf@codemonkey.ws> (raw)
In-Reply-To: <512FF819.7050505@redhat.com>

Eric Blake <eblake@redhat.com> writes:

> Stefan Berger and I discovered on IRC that virtio-rng is unable to
> support fd passing.  We attempted:
>
> qemu-system-x86_64 ... -add-fd set=4,fd=34,opaque=RDONLY:/dev/urandom
> -object rng-random,id=rng0,filename=/dev/fdset/4 -device
> virtio-rng-pci,rng=rng0,bus=pci.0,addr=0x6

Why are you using th rng-random backend instead of the rng-egd backend?

You can pass chardevs to the egd backend.  It's really not a good idea
to pass a fd via rng-rangom.

Regards,

Anthony Liguori

>
> qemu-system-x86_64: -device virtio-rng-pci,rng=rng0,bus=pci.0,addr=0x6:
> Could not open '/dev/fdset/4'
>
> Looks like this code is the culprit, in backends/rng-random.c:
>
> static void rng_random_opened(RngBackend *b, Error **errp)
> {
>     RndRandom *s = RNG_RANDOM(b);
>
>     if (s->filename == NULL) {
>         error_set(errp, QERR_INVALID_PARAMETER_VALUE,
>                   "filename", "a valid filename");
>     } else {
>         s->fd = open(s->filename, O_RDONLY | O_NONBLOCK);
>
> 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?
>
> -- 
> Eric Blake   eblake redhat com    +1-919-301-3266
> Libvirt virtualization library http://libvirt.org

  parent reply	other threads:[~2013-03-01 20:04 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <512FF819.7050505@redhat.com>
2013-03-01  9:51 ` [Qemu-devel] virtio-rng and fd passing Paolo Bonzini
2013-03-04  4:29   ` Amit Shah
2013-03-06  6:20   ` Amit Shah
2013-03-01 19:37 ` H. Peter Anvin
2013-03-01 20:13   ` Stefan Berger
2013-03-01 20:15     ` H. Peter Anvin
2013-03-01 20:41     ` Paolo Bonzini
2013-03-01 20:04 ` Anthony Liguori [this message]
2013-03-01 20:34   ` Stefan Berger
2013-03-01 21:08     ` Anthony Liguori
2013-03-01 21:13       ` Eric Blake
2013-03-01 23:05         ` Anthony Liguori
2013-03-01 23:14           ` Eric Blake
2013-03-01 23:59             ` Anthony Liguori
2013-03-02  0:29               ` Eric Blake
2013-03-02  3:13                 ` Anthony Liguori
2013-03-02 12:23                   ` Paolo Bonzini
2013-03-03 21:05                     ` Anthony Liguori
2013-03-04 21:57                       ` Eric Blake
2013-03-04 22:24                         ` Anthony Liguori
2013-03-04 22:35                           ` Eric Blake
2013-03-05  4:44                     ` H. Peter Anvin
2013-03-04 21:54                   ` Eric Blake
2013-03-02  0:34               ` Stefan Berger
2013-03-02  3:17                 ` Anthony Liguori
2013-03-02  3:34                   ` Stefan Berger
2013-03-03 21:06                     ` Anthony Liguori
2013-03-04 15:27                     ` Corey Bryant
2013-03-04 10:29             ` Daniel P. Berrange
2013-03-04 15:55               ` Corey Bryant
2013-03-01 22:59   ` Peter Krempa
2013-03-01 23:14     ` Anthony Liguori

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87k3pqzy2y.fsf@codemonkey.ws \
    --to=anthony@codemonkey.ws \
    --cc=eblake@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanb@linux.vnet.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.