From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:54192) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RNLDL-0003xR-00 for qemu-devel@nongnu.org; Mon, 07 Nov 2011 04:10:20 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RNLDB-0007kb-8B for qemu-devel@nongnu.org; Mon, 07 Nov 2011 04:09:58 -0500 Received: from mx1.redhat.com ([209.132.183.28]:29178) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RNLDA-0007jm-TJ for qemu-devel@nongnu.org; Mon, 07 Nov 2011 04:09:49 -0500 Message-ID: <4EB7A113.1060402@redhat.com> Date: Mon, 07 Nov 2011 10:12:51 +0100 From: Kevin Wolf MIME-Version: 1.0 References: <1319109385-7927-1-git-send-email-pbonzini@redhat.com> <1319109385-7927-5-git-send-email-pbonzini@redhat.com> <4EB69949.4070503@redhat.com> In-Reply-To: <4EB69949.4070503@redhat.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v2 4/7] block: take lock around bdrv_read implementations List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Avi Kivity Cc: Paolo Bonzini , qemu-devel@nongnu.org, stefanha@linux.vnet.ibm.com Am 06.11.2011 15:27, schrieb Avi Kivity: > On 10/20/2011 01:16 PM, Paolo Bonzini wrote: >> This does the first part of the conversion to coroutines, by >> wrapping bdrv_read implementations to take the read side of the >> rwlock. >> >> Drivers that implement bdrv_read rather than bdrv_co_readv can >> then benefit from asynchronous operation (at least if the underlying >> protocol supports it, which is not the case for raw-win32), even >> though they still operate with a bounce buffer. >> >> raw-win32 does not need the lock, because it cannot yield. >> nbd also doesn't probably, but better be safe. > > This patch (2914caa088e3fbbd) breaks autotest when a guest reboots after > install; instead of rebooting, the guest is stuck in the bootloader or > kernel. > > This was discovered in qemu-kvm, but applies to plain qemu too. The > commit above is broken, it's parent is good. Does the autotest case use any of the block drivers that are changed by this patch? I would be surprised to learn that, but otherwise it doesn't make sense to me. block/bochs.c | 13 ++++++++++++- block/cloop.c | 13 ++++++++++++- block/cow.c | 13 ++++++++++++- block/dmg.c | 13 ++++++++++++- block/nbd.c | 13 ++++++++++++- block/parallels.c | 13 ++++++++++++- block/vmdk.c | 13 ++++++++++++- block/vpc.c | 13 ++++++++++++- block/vvfat.c | 13 ++++++++++++- Kevin