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 <stefa...@linux.vnet.ibm.com>