v2: Address Paolo's comments:
* Schedule restart BH in the right AioContext.
* Restore ->complete_request when stopping dataplane.
This is based on top of my request converging series:
[PATCH v4 0/9] virtio-blk: Converge VirtIOBlockRequest into VirtIOBlockReq
Most of the request handlings are already the same now between dataplane and
non-dataplane, except the missing IO accounting, error reporting and
multiwrite. With this series, dataplane pulls in all of them by reusing
non-dataplane handling code.
Thread safety of error reporting relies on Paolo's series:
[PATCH 0/5] qemu-char/monitor: make monitor_puts thread safe
[PATCH v2 0/2] block: thread-safety patches for virtio-blk dataplane
rerror/werror
Fam Zheng (5):
virtio-blk: Make request completion function virtual
virtio-blk: Export request handling functions to dataplane
virtio-blk: Schedule BH in the right context
virtio-blk: Unify {non-,}dataplane's request handlings
virtio-blk: Rename complete_request_early to complete_request_vring
Stefan Hajnoczi (2):
block: make bdrv_query_stats() static
block: acquire AioContext in qmp_query_blockstats()
block/qapi.c | 6 +-
hw/block/dataplane/virtio-blk.c | 185 +++++-----------------------------------
hw/block/virtio-blk.c | 22 ++---
include/block/qapi.h | 1 -
include/hw/virtio/virtio-blk.h | 12 +++
5 files changed, 49 insertions(+), 177 deletions(-)