From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:38653) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RN3h4-0000Z4-63 for qemu-devel@nongnu.org; Sun, 06 Nov 2011 09:27:31 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RN3h2-00086L-E2 for qemu-devel@nongnu.org; Sun, 06 Nov 2011 09:27:29 -0500 Received: from mx1.redhat.com ([209.132.183.28]:16588) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RN3h2-00085t-50 for qemu-devel@nongnu.org; Sun, 06 Nov 2011 09:27:28 -0500 Message-ID: <4EB69949.4070503@redhat.com> Date: Sun, 06 Nov 2011 16:27:21 +0200 From: Avi Kivity MIME-Version: 1.0 References: <1319109385-7927-1-git-send-email-pbonzini@redhat.com> <1319109385-7927-5-git-send-email-pbonzini@redhat.com> In-Reply-To: <1319109385-7927-5-git-send-email-pbonzini@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: Paolo Bonzini Cc: kwolf@redhat.com, qemu-devel@nongnu.org, stefanha@linux.vnet.ibm.com 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. -- error compiling committee.c: too many arguments to function