As part of the ongoing multi-queue QEMU block layer work, I found that CoMutex
reqs_lock scales poorly when more IOThreads are added. These patches double
IOPS in the 4 IOThreads randread benchmark that I have been running with my
out-of-tree virtio-blk-iothread-vq-mapping branch
(https://gitlab.com/stefanha/qemu/-/commits/virtio-blk-iothread-vq-mapping).
These patches can be merged in preparation for virtio-blk multi-queue block
layer support.
Stefan Hajnoczi (2):
block: minimize bs->reqs_lock section in tracked_request_end()
block: change reqs_lock to QemuMutex
include/block/block_int-common.h | 2 +-
block.c | 4 +++-
block/io.c | 30 ++++++++++++++++++------------
3 files changed, 22 insertions(+), 14 deletions(-)
--
2.41.0