mbox series

[0/2] block: change reqs_lock to QemuMutex

Message ID 20230808155852.2745350-1-stefanha@redhat.com
Headers show
Series block: change reqs_lock to QemuMutex | expand

Message

Stefan Hajnoczi Aug. 8, 2023, 3:58 p.m. UTC
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(-)

Comments

Kevin Wolf Aug. 18, 2023, 3:36 p.m. UTC | #1
Am 08.08.2023 um 17:58 hat Stefan Hajnoczi geschrieben:
> 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.

Thanks, applied to the block branch.

Kevin