From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35543) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1agA42-0008ON-Rl for qemu-devel@nongnu.org; Wed, 16 Mar 2016 07:56:35 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1agA3z-0000ZT-LN for qemu-devel@nongnu.org; Wed, 16 Mar 2016 07:56:34 -0400 Received: from e06smtp07.uk.ibm.com ([195.75.94.103]:36546) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1agA3z-0000ZE-CN for qemu-devel@nongnu.org; Wed, 16 Mar 2016 07:56:31 -0400 Received: from localhost by e06smtp07.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Wed, 16 Mar 2016 11:56:29 -0000 Date: Wed, 16 Mar 2016 12:56:23 +0100 From: Cornelia Huck Message-ID: <20160316125623.38ab4c7e.cornelia.huck@de.ibm.com> In-Reply-To: <56E94806.7060505@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> 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 12:48:22 +0100 Paolo Bonzini wrote: > > > On 16/03/2016 12:32, Cornelia Huck wrote: > > On Wed, 16 Mar 2016 12:09:02 +0100 > > Paolo Bonzini wrote: > > > >> On 16/03/2016 11:49, Christian Borntraeger wrote: > > > >>> #3 0x00000000800b713e in virtio_blk_data_plane_start (s=0xba232d80) at /home/cborntra/REPOS/qemu/hw/block/dataplane/virtio-blk.c:224 > >>> #4 0x00000000800b4ea0 in virtio_blk_handle_output (vdev=0xb9eee7e8, vq=0xba305270) at /home/cborntra/REPOS/qemu/hw/block/virtio-blk.c:590 > >>> #5 0x00000000800ef3dc in virtio_queue_notify_vq (vq=0xba305270) at /home/cborntra/REPOS/qemu/hw/virtio/virtio.c:1095 > >>> #6 0x00000000800f1c9c in virtio_queue_host_notifier_read (n=0xba3052c8) at /home/cborntra/REPOS/qemu/hw/virtio/virtio.c:1785 > >>> #7 0x00000000800f1e14 in virtio_queue_set_host_notifier_fd_handler (vq=0xba305270, assign=false, set_handler=false) at /home/cborntra/REPOS/qemu/hw/virtio/virtio.c:1817 > >>> #8 0x0000000080109c50 in virtio_ccw_set_guest2host_notifier (dev=0xb9eed6a0, n=0, assign=false, set_handler=false) at /home/cborntra/REPOS/qemu/hw/s390x/virtio-ccw.c:97 > >>> #9 0x0000000080109ef2 in virtio_ccw_stop_ioeventfd (dev=0xb9eed6a0) at /home/cborntra/REPOS/qemu/hw/s390x/virtio-ccw.c:154 > >> > >> One bug is here: virtio_ccw_stop_ioeventfd, in this case, should pass > >> assign=true to virtio_ccw_set_guest2host_notifier. (Assuming my > >> understanding of assign=true is correct; I think it means "I'm going to > >> set up another host notifier handler"). > > > > Hm... I copied these semantics from virtio-pci, and they still seem to > > be the same. I wonder why we never saw this on virtio-pci? > > Just because we never ran the right tests, probably. The bug is indeed > in virtio-pci as well (I didn't check mmio). Somebody should probably do a writeup on the expected behaviour, as this always ends in mental gymnastics (at least for me :) > > >> In dataplane, instead, all calls to > >> virtio_queue_set_host_notifier_fd_handler and > >> virtio_queue_aio_set_host_notifier_handler should have assign=true. The > >> ioeventfd is just being moved from one aiocontext to another. > > > > How can a transport know where they are called from? > > That's a bug in dataplane. The calls should be changed in > hw/block/dataplane/virtio-blk.c I don't think the ->set_host_notifiers() api really allows for this.