From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:40695) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aRFfD-0005AE-Rw for qemu-devel@nongnu.org; Thu, 04 Feb 2016 03:53:20 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aRFf9-0004VV-Qy for qemu-devel@nongnu.org; Thu, 04 Feb 2016 03:53:19 -0500 Received: from mx3-phx2.redhat.com ([209.132.183.24]:59294) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aRFf9-0004VR-JK for qemu-devel@nongnu.org; Thu, 04 Feb 2016 03:53:15 -0500 Date: Thu, 4 Feb 2016 03:53:13 -0500 (EST) From: Pankaj Gupta Message-ID: <2080961306.14671218.1454575993488.JavaMail.zimbra@redhat.com> In-Reply-To: <56B24A9C.9010104@redhat.com> References: <1453465198-11000-1-git-send-email-lprosek@redhat.com> <20160203123639.GA20527@grmbl.mre> <56B24A9C.9010104@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH] rng-random: implement request queue List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Ladi Prosek Cc: Amit Shah , Paolo Bonzini , qemu-devel@nongnu.org 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 >