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