Hi,
This series implements the backend and frontend infrastructure for virtio-rng.
This is similar to previous series sent out by both Amit and myself although
it has been trimmed down considerably.
In terms of backends, a file and EGD backend are supported. The file defaults
to /dev/random based on the feedback from Peter. It's still possible to
support /dev/urandom though as an entropy source by overriding the file name.
v1 -> v2:
- Include default backend patch from separate series
- Add a rate limiting patch
My take away from all of the various discussions on what the Right Way to
use virtio-rng is:
1) /dev/random should always be used as the entropy source (I've left it
configurable though)
2) I think the Right Way to configure virtio-rng is to figure out what the
available entropy is on the host, and then decide how to allocate that
to each guest. As such, I've implemented rate limiting.
I think QEMU is the right place to do this because this is a property of
specific virtual machines. I can imagine a cloud provider wanting to
guarantee a certain level of entropy for different classes of VMs. Even
if rngd could be used to do this, configuring it differently for different
guests would be cumbersome.
3) `qemu -device virtio-rng-pci` will Just Work but risks exhausting host
entropy. This means we can't make it the default for machines. But for
most command line users, I think this is the behavior they want.