From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:54237) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Qlg5Y-0000zY-TV for qemu-devel@nongnu.org; Tue, 26 Jul 2011 07:46:17 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Qlg5X-00049O-U3 for qemu-devel@nongnu.org; Tue, 26 Jul 2011 07:46:16 -0400 Received: from mx1.redhat.com ([209.132.183.28]:26780) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Qlg5X-00049K-JA for qemu-devel@nongnu.org; Tue, 26 Jul 2011 07:46:15 -0400 From: Kevin Wolf Date: Tue, 26 Jul 2011 13:48:58 +0200 Message-Id: <1311680948-7648-1-git-send-email-kwolf@redhat.com> Subject: [Qemu-devel] [PATCH 00/10] block: Coroutine support List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: kwolf@redhat.com, stefanha@gmail.com Depends 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 (10): 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 posix-aio-compat: Allow read after EOF 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 | 43 +------- posix-aio-compat.c | 30 ++++-- qemu-common.h | 4 - qemu-coroutine-int.h | 1 + qemu-coroutine-lock.c | 117 +++++++++++++++++++++ qemu-coroutine.h | 64 ++++++++++++ trace-events | 11 ++ 18 files changed, 659 insertions(+), 464 deletions(-) create mode 100644 qemu-coroutine-lock.c -- 1.7.6