From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:60436) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Qnp2i-0003QH-6p for qemu-devel@nongnu.org; Mon, 01 Aug 2011 05:44:13 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Qnp2h-0003w0-98 for qemu-devel@nongnu.org; Mon, 01 Aug 2011 05:44:12 -0400 Received: from mail-fx0-f45.google.com ([209.85.161.45]:56780) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Qnp2h-0003vw-2i for qemu-devel@nongnu.org; Mon, 01 Aug 2011 05:44:11 -0400 Received: by fxbb27 with SMTP id b27so4787767fxb.4 for ; Mon, 01 Aug 2011 02:44:09 -0700 (PDT) Date: Mon, 1 Aug 2011 10:44:01 +0100 From: Stefan Hajnoczi Message-ID: <20110801094401.GA10043@stefanha-thinkpad.localdomain> References: <1310748459-2119-1-git-send-email-kwolf@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1310748459-2119-1-git-send-email-kwolf@redhat.com> Subject: Re: [Qemu-devel] [RFC][PATCH 0/9] Use coroutines in the block layer List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Kevin Wolf Cc: qemu-devel@nongnu.org On Fri, Jul 15, 2011 at 06:47:30PM +0200, Kevin Wolf wrote: > Based on Stefan's latest coroutine patches. This series makes qcow and qcow2 > take advantage of the new coroutine infrastructure. Both formats used > synchronous operations for accessing their metadata and blocked the guest CPU > during that time. With coroutines, the I/O will happen asynchronously in the > background and the CPU won't be blocked any more. > > Kevin Wolf (9): > block: Add bdrv_co_readv/writev > block: Emulate AIO functions with bdrv_co_readv/writev > block: Add bdrv_co_readv/writev emulation > coroutines: Locks > qcow2: Use coroutines > qcow: Use coroutines > async: Remove AsyncContext > coroutines: Use one global bottom half for CoQueue > block: Use bdrv_co_* instead of synchronous versions in coroutines > > Makefile.objs | 4 +- > async.c | 98 ++----------------- > block.c | 271 ++++++++++++++++++++++++++++++++++++++++++++++-- > block.h | 5 + > block/qcow.c | 180 +++++++++++--------------------- > block/qcow2-cluster.c | 26 ++--- > block/qcow2.c | 240 ++++++++++++++++---------------------------- > block/qcow2.h | 5 +- > block/qed-table.c | 14 --- > block/qed.c | 4 - > block_int.h | 6 + > linux-aio.c | 24 +---- > posix-aio-compat.c | 11 -- > qemu-common.h | 4 - > qemu-coroutine-int.h | 1 + > qemu-coroutine-lock.c | 117 +++++++++++++++++++++ > qemu-coroutine.h | 62 +++++++++++ > trace-events | 11 ++ > 18 files changed, 636 insertions(+), 447 deletions(-) > create mode 100644 qemu-coroutine-lock.c > > -- > 1.7.6 Reviewed-by: Stefan Hajnoczi