Skip to content

block optimisation round

Pavel Begunkov linux-block 1 version Applied

Status from this message: Applied, thanks!

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest16 patches 40 repliesApplied

Patches in v1 Applied

#Subject and filesSizeRepliesApplied
1/16block: turn macro helpers into inline functionsinclude/linux/bio.h+16 -161 reply
2/16block: convert leftovers to bdev_get_queueblock/blk-core.c block/blk-merge.c+2 -21 reply
3/16block: optimise req_bio_endio()block/blk-mq.c+7 -93 replies
4/16block: don't bloat enter_queue with percpu_refblock/blk-core.c+1 -13 replies
5/16block: inline a part of bio_release_pages()block/bio.c include/linux/bio.h+9 -64 replies
6/16block: clean up blk_mq_submit_bio() mergingblock/blk-mq-sched.c block/blk-mq-sched.h block/blk-mq.c+9 -182 replies
7/16blocK: move plug flush functions to blk-mq.cblock/blk-core.c block/blk-mq.c block/blk-mq.h +1 more+29 -345 replies
8/16block: optimise blk_flush_plug_listblock/blk-mq.c+7 -52 replies
9/16block: optimise boundary blkdev_read_iter's checksblock/fops.c+11 -81 reply
10/16block: optimise blkdev_bio_end_io()block/fops.c+6 -62 replies
11/16block: add optimised version bio_set_dev()block/fops.c include/linux/bio.h+10 -43 replies
12/16block: add single bio async direct IO helperblock/fops.c+87 -32 replies
13/16block: add async version of bio_set_polledblock/fops.c include/linux/bio.h+8 -32 replies
14/16block: skip advance when async and not neededblock/bio.c block/fops.c include/linux/bio.h+17 -71 reply
15/16block: optimise blk_may_split for normal rwblock/blk.h+12 -82 replies
16/16block: optimise submit_bio_checks for normal rwblock/blk-core.c+39 -351 reply

Reviews trailers per patch

7 of 16 patches have a Reviewed-by or Acked-by.

PatchChaitanya KulkarniChristoph Hellwig
1/16R-b
2/16R-b
3/16R-b
4/16R-b R-b
5/16
6/16
7/16R-b
8/16
9/16R-b
10/16
11/16R-b
12/16
13/16
14/16
15/16
16/16

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v1 thread

Cover letter [PATCH 00/16] block optimisation round

Jens tried out a similar series with some not yet sent additions:
8.2-8.3 MIOPS -> ~9 MIOPS, or 8-10%.

12/16 is bulky, but it nicely drives the numbers. Moreover, with it we can rid of some not used anymore optimisations in __blkdev_direct_IO() because it awlays serve multiple bios. E.g. no need in conditional referencing with DIO_MULTI_BIO, and _probably_ can be converted to chained bio.

Pavel Begunkov (16):
block: turn macro helpers into inline functions
block: convert leftovers to bdev_get_queue
block: optimise req_bio_endio()
block: don't bloat enter_queue with percpu_ref
block: inline a part of bio_release_pages()
block: clean up blk_mq_submit_bio() merging
blocK: move plug flush functions to blk-mq.c
block: optimise blk_flush_plug_list
block: optimise boundary blkdev_read_iter's checks
block: optimise blkdev_bio_end_io()
block: add optimised version bio_set_dev()
block: add single bio async direct IO helper
block: add async version of bio_set_polled
block: skip advance when async and not needed
block: optimise blk_may_split for normal rw
block: optimise submit_bio_checks for normal rw

 block/bio.c            |  20 +++----
 block/blk-core.c       | 105 ++++++++++++++--------------------
 block/blk-merge.c      |   2 +-
 block/blk-mq-sched.c   |   2 +-
 block/blk-mq-sched.h   |  12 +---
 block/blk-mq.c         |  64 ++++++++++++++-------
 block/blk-mq.h         |   1 -
 block/blk.h            |  20 ++++---
 block/fops.c           | 125 ++++++++++++++++++++++++++++++++++-------
 include/linux/bio.h    |  60 ++++++++++++++------
 include/linux/blk-mq.h |   2 -
 11 files changed, 259 insertions(+), 154 deletions(-)
Signature · 1 line
2.33.1