linux-block.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/16] block optimisation round
@ 2021-10-19 21:24 Pavel Begunkov
  2021-10-19 21:24 ` [PATCH 01/16] block: turn macro helpers into inline functions Pavel Begunkov
                   ` (19 more replies)
  0 siblings, 20 replies; 57+ messages in thread
From: Pavel Begunkov @ 2021-10-19 21:24 UTC (permalink / raw)
  To: linux-block; +Cc: Jens Axboe, Pavel Begunkov

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

-- 
2.33.1


^ permalink raw reply	[flat|nested] 57+ messages in thread

end of thread, other threads:[~2021-10-22 10:59 UTC | newest]

Thread overview: 57+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-10-19 21:24 [PATCH 00/16] block optimisation round Pavel Begunkov
2021-10-19 21:24 ` [PATCH 01/16] block: turn macro helpers into inline functions Pavel Begunkov
2021-10-20  6:09   ` Christoph Hellwig
2021-10-19 21:24 ` [PATCH 02/16] block: convert leftovers to bdev_get_queue Pavel Begunkov
2021-10-19 22:34   ` Chaitanya Kulkarni
2021-10-19 21:24 ` [PATCH 03/16] block: optimise req_bio_endio() Pavel Begunkov
2021-10-20  6:11   ` Christoph Hellwig
2021-10-22  9:58   ` Shinichiro Kawasaki
2021-10-22 10:58     ` Pavel Begunkov
2021-10-19 21:24 ` [PATCH 04/16] block: don't bloat enter_queue with percpu_ref Pavel Begunkov
2021-10-19 22:32   ` Chaitanya Kulkarni
2021-10-20  6:12   ` Christoph Hellwig
2021-10-20 12:08     ` Pavel Begunkov
2021-10-19 21:24 ` [PATCH 05/16] block: inline a part of bio_release_pages() Pavel Begunkov
2021-10-20  6:13   ` Christoph Hellwig
2021-10-20 12:19     ` Pavel Begunkov
2021-10-20 14:15     ` Jens Axboe
2021-10-20 17:29       ` Christoph Hellwig
2021-10-19 21:24 ` [PATCH 06/16] block: clean up blk_mq_submit_bio() merging Pavel Begunkov
2021-10-20  6:16   ` Christoph Hellwig
2021-10-20 12:20     ` Pavel Begunkov
2021-10-19 21:24 ` [PATCH 07/16] blocK: move plug flush functions to blk-mq.c Pavel Begunkov
2021-10-19 22:34   ` Chaitanya Kulkarni
2021-10-20  6:17   ` Christoph Hellwig
2021-10-20 12:23     ` Pavel Begunkov
2021-10-20 12:37       ` Christoph Hellwig
2021-10-20 13:18         ` Pavel Begunkov
2021-10-19 21:24 ` [PATCH 08/16] block: optimise blk_flush_plug_list Pavel Begunkov
2021-10-20  6:29   ` Christoph Hellwig
2021-10-20 12:26     ` Pavel Begunkov
2021-10-19 21:24 ` [PATCH 09/16] block: optimise boundary blkdev_read_iter's checks Pavel Begunkov
2021-10-20  6:29   ` Christoph Hellwig
2021-10-19 21:24 ` [PATCH 10/16] block: optimise blkdev_bio_end_io() Pavel Begunkov
2021-10-20  6:30   ` Christoph Hellwig
2021-10-20 12:29     ` Pavel Begunkov
2021-10-19 21:24 ` [PATCH 11/16] block: add optimised version bio_set_dev() Pavel Begunkov
2021-10-19 22:36   ` Chaitanya Kulkarni
2021-10-20  6:20   ` Christoph Hellwig
2021-10-20 12:29     ` Pavel Begunkov
2021-10-19 21:24 ` [PATCH 12/16] block: add single bio async direct IO helper Pavel Begunkov
2021-10-20  6:36   ` Christoph Hellwig
2021-10-20 12:35     ` Pavel Begunkov
2021-10-19 21:24 ` [PATCH 13/16] block: add async version of bio_set_polled Pavel Begunkov
2021-10-20  6:37   ` Christoph Hellwig
2021-10-20 12:58     ` Pavel Begunkov
2021-10-19 21:24 ` [PATCH 14/16] block: skip advance when async and not needed Pavel Begunkov
2021-10-20  6:41   ` Christoph Hellwig
2021-10-19 21:24 ` [PATCH 15/16] block: optimise blk_may_split for normal rw Pavel Begunkov
2021-10-20  6:25   ` Christoph Hellwig
2021-10-20 13:38     ` Pavel Begunkov
2021-10-19 21:24 ` [PATCH 16/16] block: optimise submit_bio_checks " Pavel Begunkov
2021-10-20  6:26   ` Christoph Hellwig
2021-10-19 23:31 ` [PATCH 00/16] block optimisation round Jens Axboe
2021-10-20  0:21 ` Jens Axboe
2021-10-20  0:22   ` Jens Axboe
2021-10-20 14:12 ` (subset) " Jens Axboe
2021-10-20 14:54 ` Pavel Begunkov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).