Hi Ladi, I think this is fine if we have multiple requests from Guests and depending on entropy pool available we can honour individual requests and return with the entropy.
Just one point I have is, Suppose we have multiple requests from Guests and we are returning if request length < 0 for any request. There might be pending requests which will get executed in next iteration?Can we honour them in same iteration? static void entropy_available(void *opaque) { ... ... while (s->requests != NULL) { ... if (len < 0 && errno == EAGAIN) { + return; + } ... Best regards, Pankaj > > > > On 03/02/2016 13:36, Amit Shah wrote: > > ... and this can lead to breaking migration (the queue of requests on > > the host needs to be migrated, else the new host will have no idea of > > the queue). > > It is already migrated as part of virtio_rng_save's call to virtio_save. > On the loading side, virtio_rng_process condenses all requests into one > and chr_read fills in as many virtqueue buffers as possible from the > single request. > > Cancel_requests seems useless. > > Paolo >