2021-10-13 09:01:55

by Pavel Begunkov

[permalink] [raw]
Subject: [PATCH v2 0/3] on top of for-5.16/block

./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(-)

--
2.33.0


2021-10-13 09:17:39

by Pavel Begunkov

[permalink] [raw]
Subject: Re: [PATCH v2 0/3] on top of for-5.16/block

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

2021-10-13 15:57:31

by Jens Axboe

[permalink] [raw]
Subject: Re: (subset) [PATCH v2 0/3] on top of for-5.16/block

On Wed, 13 Oct 2021 09:57:10 +0100, Pavel Begunkov wrote:
> ./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)
>
> [...]

Applied, thanks!

[1/3] block: cache bdev in struct file for raw bdev IO
commit: 82f652990a4ade2df9d6475ad82f4dd22a3265f6
[3/3] blk-mq: optimise *end_request non-stat path
commit: e945e2edb67048c42527089cd9938454ae4f9c04

Best regards,
--
Jens Axboe