On 10/13/21 09:57, Pavel Begunkov wrote: Bodged subject, should've been block optimisation or so.
./io_uring -d32 -s32 -c32 -b512 -p1 /dev/nullb0 ~3.3 MIOPS vs 3.5 MIOPS, so gives around extra ~4-5%. The main part is caching struct block_device + some inlining. v2: without applied patches, merge previous 6/6 into the second patch get rid of helpers (Jens, Christoph) kill bdev_inode and move inode into bdev (Christoph) Pavel Begunkov (3): block: cache bdev in struct file for raw bdev IO block: don't hide inode from block_device users blk-mq: optimise *end_request non-stat path block/bdev.c | 44 ++++++++++----------------------------- block/blk-mq.c | 18 +++++++--------- block/fops.c | 43 ++++++++++++++++---------------------- include/linux/blk_types.h | 1 + include/linux/blkdev.h | 8 +++++-- 5 files changed, 44 insertions(+), 70 deletions(-)
-- Pavel Begunkov