From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:48440) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1agAnD-0003Ta-LL for qemu-devel@nongnu.org; Wed, 16 Mar 2016 08:43:19 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1agAn7-0005sL-Fm for qemu-devel@nongnu.org; Wed, 16 Mar 2016 08:43:12 -0400 Received: from e06smtp08.uk.ibm.com ([195.75.94.104]:54654) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1agAn7-0005s6-7F for qemu-devel@nongnu.org; Wed, 16 Mar 2016 08:43:09 -0400 Received: from localhost by e06smtp08.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Wed, 16 Mar 2016 12:43:06 -0000 Date: Wed, 16 Mar 2016 13:42:57 +0100 From: Cornelia Huck Message-ID: <20160316134257.72d7da56.cornelia.huck@de.ibm.com> In-Reply-To: <56E9527B.9010001@redhat.com> References: <1458123018-18651-1-git-send-email-famz@redhat.com> <56E9355A.5070700@redhat.com> <56E93A22.1080102@de.ibm.com> <56E93ECE.10103@redhat.com> <20160316123213.3dcf0abc.cornelia.huck@de.ibm.com> <56E94806.7060505@redhat.com> <20160316125623.38ab4c7e.cornelia.huck@de.ibm.com> <56E94AA9.8000803@redhat.com> <20160316132212.674f766f.cornelia.huck@de.ibm.com> <56E9527B.9010001@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 0/4] Tweaks around virtio-blk start/stop List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Paolo Bonzini Cc: Kevin Wolf , Fam Zheng , qemu-block@nongnu.org, "Michael S. Tsirkin" , qemu-devel@nongnu.org, Christian Borntraeger , tubo@linux.vnet.ibm.com, Stefan Hajnoczi On Wed, 16 Mar 2016 13:32:59 +0100 Paolo Bonzini wrote: > On 16/03/2016 13:22, Cornelia Huck wrote: > >> > Yeah, it doesn't help that the functions are underdocumented (as in the > >> > "assign" parameter above). > > My understanding is: > > > > - 'assign': set up a new notifier (true) or disable it (false) > > - 'set_handler': use our handler (true) or have it handled elsewhere > > (false) > > Right. So if we're setting up a new notifier in > virtio_queue_aio_set_host_notifier_handler, virtio_pci_stop_ioeventfd should ...do what? ;) > > > > > I don't think the ->set_host_notifiers() api really allows for this. > > > > > > I think it does, assign is the last argument to k->set_host_notifier(). > > > > This depends on whether we want 'assign' to clean up any old notifiers > > before setting up new ones. I think we want different behaviour for > > dataplane and vhost. > > I think dataplane and vhost are the same. > > The question is whether ioeventfd=off,vhost=on or > ioeventfd=off,dataplane=on are valid combinations; I think they aren't. We should disallow that even temporary, then. (This would imply that we need to drop the _stop_ioeventfd() call in ->set_host_notifier(), correct?) > If they aren't, it should be okay to remove the > virtio_queue_host_notifier_read call in > virtio_queue_set_host_notifier_fd_handler and > virtio_queue_aio_set_host_notifier_handler. That's because a handler > for the notifier will always be set _somewhere_. It could be the usual > ioeventfd handler, the vhost handler or the dataplane handler, but one > will be there. It should; but we probably need to do a final read when we stop the ioeventfd.