This series extends bio pcpu caching for normal / IRQ-driven uring-passthru I/Os. Earlier, only polled uring-passthru I/Os could leverage bio-cache. After the series from Pavel[1], bio-cache can be leveraged by normal / IRQ driven I/Os as well. t/io_uring with an Optane SSD setup shows +7.21% for batches of 32 requests. [1] https://lore.kernel.org/io-uring/cover.1666347703.git.asml.silence@xxxxxxxxx/ IRQ, 128/32/32, cache off # taskset -c 0 t/io_uring -b512 -d128 -c32 -s32 -p0 -F1 -B1 -P0 -O0 -u1 -n1 /dev/ng0n1 submitter=0, tid=13207, file=/dev/ng0n1, node=-1 polled=0, fixedbufs=1/0, register_files=1, buffered=1, QD=128 Engine=io_uring, sq_ring=128, cq_ring=128 IOPS=3.05M, BW=1488MiB/s, IOS/call=32/31 IOPS=3.04M, BW=1483MiB/s, IOS/call=32/31 IOPS=3.03M, BW=1477MiB/s, IOS/call=32/32 IOPS=3.03M, BW=1481MiB/s, IOS/call=32/32 ^CExiting on signal Maximum IOPS=3.05M IRQ, 128/32/32, cache on # taskset -c 0 t/io_uring -b512 -d128 -c32 -s32 -p0 -F1 -B1 -P0 -O0 -u1 -n1 /dev/ng0n1 submitter=0, tid=6755, file=/dev/ng0n1, node=-1 polled=0, fixedbufs=1/0, register_files=1, buffered=1, QD=128 Engine=io_uring, sq_ring=128, cq_ring=128 IOPS=3.27M, BW=1596MiB/s, IOS/call=32/31 IOPS=3.27M, BW=1595MiB/s, IOS/call=32/32 IOPS=3.26M, BW=1592MiB/s, IOS/call=32/31 IOPS=3.26M, BW=1593MiB/s, IOS/call=32/32 ^CExiting on signal Maximum IOPS=3.27M Anuj Gupta (2): nvme: set REQ_ALLOC_CACHE for uring-passthru request block: extend bio-cache for non-polled requests block/blk-map.c | 6 ++---- drivers/nvme/host/ioctl.c | 4 ++-- 2 files changed, 4 insertions(+), 6 deletions(-) -- 2.25.1