Hi Jens, brd is one of the few block drivers that still uses submit_bio instead of blk-mq framework. The following patch converts brd to start using blk-mq framework. Performance gains are pretty evident for read workloads. The performance numbers are also attached as a part of the commit log. Performance (WD=[read|randread|write|randwrite]): $ modprobe brd rd_size=1048576 rd_nr=1 $ echo "none" > /sys/block/ram0/queue/scheduler $ fio --name=<WD> --ioengine=io_uring --iodepth=64 --rw=<WD> --size=1G \ --io_size=20G --loop=4 --cpus_allowed=1 --filename=/dev/ram0 --iodepth=64 --direct=[0/1] --direct=0 ------------------------------------------------------ | | bio(base) | blk-mq | delta | ------------------------------------------------------ | randread | 133 | 223 | +75% | ------------------------------------------------------ | read | 150 | 313 | +108% | ----------------------------------------------------- | randwrite | 111 | 109 | -1.8% | ----------------------------------------------------- | write | 118 | 117 | -0.8%| ----------------------------------------------------- --direct=1 ------------------------------------------------------ | | bio(base) | blk-mq | delta | ------------------------------------------------------ | randread | 182 | 414 | +127% | ------------------------------------------------------ | read | 190 | 429 | +125% | ----------------------------------------------------- | randwrite | 378 | 387 | +2.38%| ----------------------------------------------------- | write | 443 | 420 | -5.1% | ----------------------------------------------------- I also added some simple blktests for the brd device to test the changes, and it can be found here: https://github.com/Panky-codes/blktests/tree/brd I will send the blktests patches once this gets merged. Pankaj Raghav (1): brd: improve performance with blk-mq drivers/block/brd.c | 64 +++++++++++++++++++++++++++++++++------------ 1 file changed, 47 insertions(+), 17 deletions(-) -- 2.39.0