qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v2 1/1] virtio-rng: hardware random number gener


From: Amit Shah
Subject: Re: [Qemu-devel] [PATCH v2 1/1] virtio-rng: hardware random number generator device
Date: Sat, 26 May 2012 01:50:18 +0530

On (Fri) 25 May 2012 [15:00:53], Anthony Liguori wrote:
> On 05/25/2012 02:32 PM, Amit Shah wrote:
> >The Linux kernel already has a virtio-rng driver, this is the device
> >implementation.
> >
> >When the guest asks for entropy from the virtio hwrng, it puts a buffer
> >in the vq.  We then put entropy into that buffer, and push it back to
> >the guest.
> >
> >The chardev connected to this device is fed the data to be sent to the
> >guest.
> >
> >Invocation is simple:
> >
> >   $ qemu ... -device virtio-rng-pci,chardev=foo
> >
> >In the guest, we see
> >
> >   $ cat /sys/devices/virtual/misc/hw_random/rng_available
> >   virtio
> >
> >   $ cat /sys/devices/virtual/misc/hw_random/rng_current
> >   virtio
> >
> >   # cat /dev/hwrng
> >
> >Simply feeding /dev/urandom from the host to the chardev is sufficient:
> >
> >   $ qemu ... -chardev socket,path=/tmp/foo,server,nowait,id=foo \
> >              -device virtio-rng,chardev=foo
> >
> >   $ nc -U /tmp/foo<  /dev/urandom
> >
> >A QMP event is sent for interested apps to monitor activity and send the
> >appropriate number of bytes that get asked by the guest:
> >
> >   {"timestamp": {"seconds": 1337966878, "microseconds": 517009}, \
> >    "event": "ENTROPY_NEEDED", "data": {"bytes": 64}}
> 
> I don't understand the point of this event.  Can't a management app
> just create a socket and then it can see all the requests the guest
> makes?

How?  With the chardev, it can only keep feeding data, and that data
will be consumed when chr_can_read() returns > 0.  And even then the
mgmt app has no idea how much data was asked for, and how much was
consumed.

                Amit



reply via email to

[Prev in Thread] Current Thread [Next in Thread]