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 v2 -> v3: - Small bug fix spotted by Paolo 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.