[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-block] [PATCH 0/9] block-backend: Use coroutine for flush/discard/
From: |
Kevin Wolf |
Subject: |
[Qemu-block] [PATCH 0/9] block-backend: Use coroutine for flush/discard/ioctl |
Date: |
Thu, 20 Oct 2016 15:46:00 +0200 |
Paolo, this is my attempt at implementing what you were asking for last Friday.
I converted blk_(co_)flush/pdiscard/ioctl so that all interfaces (coroutine,
AIO, sync) go through the same coroutine-based function already on the
BlockBackend level. Where it was reasonably easy, I also removed the
corresponding emulations from block/io.c IIUC, this should cover your immediate
needs.
Function to remove this series leaves for another day:
* bdrv_aio_flush (used by blkdebug, blkverify, qed)
* bdrv_flush (even more users)
* bdrv_pdiscard (used by qcow2)
BlockDriver callbacks to remove left for another day:
* bdrv_aio_pdiscard (implemented by raw-posix and rbd)
* bdrv_aio_ioctl (implemented by raw-posix and iscsi)
In both cases, raw-posix is trivial to covert, but iscsi and rbd feel rather
scary without a proper test setup.
Kevin Wolf (9):
block: Use blk_co_flush() for all BB level flushes
block: Use blk_co_pdiscard() for all BB level discard
block: Remove bdrv_aio_pdiscard()
block: Use blk_co_ioctl() for all BB level ioctls
raw-posix: Don't use bdrv_ioctl()
block: Remove bdrv_ioctl()
block: Introduce .bdrv_co_ioctl() driver callback
raw: Implement .bdrv_co_ioctl instead of .bdrv_aio_ioctl
block: Remove bdrv_aio_ioctl()
block/block-backend.c | 94 ++++++++++++++++++++++++----------
block/io.c | 111 ++++-------------------------------------
block/raw-posix.c | 16 ++++--
block/raw_bsd.c | 9 ++--
block/trace-events | 1 -
include/block/block.h | 8 +--
include/block/block_int.h | 2 +
include/sysemu/block-backend.h | 1 +
8 files changed, 98 insertions(+), 144 deletions(-)
--
1.8.3.1
- [Qemu-block] [PATCH 0/9] block-backend: Use coroutine for flush/discard/ioctl,
Kevin Wolf <=
- [Qemu-block] [PATCH 1/9] block: Use blk_co_flush() for all BB level flushes, Kevin Wolf, 2016/10/20
- [Qemu-block] [PATCH 4/9] block: Use blk_co_ioctl() for all BB level ioctls, Kevin Wolf, 2016/10/20
- [Qemu-block] [PATCH 2/9] block: Use blk_co_pdiscard() for all BB level discard, Kevin Wolf, 2016/10/20
- [Qemu-block] [PATCH 5/9] raw-posix: Don't use bdrv_ioctl(), Kevin Wolf, 2016/10/20
- [Qemu-block] [PATCH 7/9] block: Introduce .bdrv_co_ioctl() driver callback, Kevin Wolf, 2016/10/20