[Top][All Lists]

[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

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(-)


reply via email to

[Prev in Thread] Current Thread [Next in Thread]