[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [RFC][PATCH 0/9] Use coroutines in the block layer
From: |
Kevin Wolf |
Subject: |
[Qemu-devel] [RFC][PATCH 0/9] Use coroutines in the block layer |
Date: |
Fri, 15 Jul 2011 18:47:30 +0200 |
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
- [Qemu-devel] [RFC][PATCH 0/9] Use coroutines in the block layer,
Kevin Wolf <=
- [Qemu-devel] [RFC][PATCH 1/9] block: Add bdrv_co_readv/writev, Kevin Wolf, 2011/07/15
- [Qemu-devel] [RFC][PATCH 2/9] block: Emulate AIO functions with bdrv_co_readv/writev, Kevin Wolf, 2011/07/15
- [Qemu-devel] [RFC][PATCH 3/9] block: Add bdrv_co_readv/writev emulation, Kevin Wolf, 2011/07/15
- [Qemu-devel] [RFC][PATCH 4/9] coroutines: Locks, Kevin Wolf, 2011/07/15
- [Qemu-devel] [RFC][PATCH 5/9] qcow2: Use coroutines, Kevin Wolf, 2011/07/15
- [Qemu-devel] [RFC][PATCH 6/9] qcow: Use coroutines, Kevin Wolf, 2011/07/15
- [Qemu-devel] [RFC][PATCH 8/9] coroutines: Use one global bottom half for CoQueue, Kevin Wolf, 2011/07/15
- [Qemu-devel] [RFC][PATCH 7/9] async: Remove AsyncContext, Kevin Wolf, 2011/07/15
- [Qemu-devel] [RFC][PATCH 9/9] block: Use bdrv_co_* instead of synchronous versions in coroutines, Kevin Wolf, 2011/07/15