All of lore.kernel.org
 help / color / mirror / Atom feed
* btrfs I/O completion cleanup and single device I/O optimizations v2
@ 2022-07-13  6:13 Christoph Hellwig
  2022-07-13  6:13 ` [PATCH 01/11] btrfs: don't call bioset_integrity_create for btrfs_bioset Christoph Hellwig
                   ` (11 more replies)
  0 siblings, 12 replies; 33+ messages in thread
From: Christoph Hellwig @ 2022-07-13  6:13 UTC (permalink / raw)
  To: Chris Mason, Josef Bacik, David Sterba
  Cc: Nikolay Borisov, Johannes Thumshirn, linux-btrfs

Hi all,

this series cleans up the btrfs_bio API, most prominently by splitting
the end_io handler for the highlevel bio from the low-level bio
bi_end_io, which are really confusingly coupled in the current code.
Once that is done it then optimizes the bio submission to not allocate
a btrfs_io_context for I/Os tht just go to a single device.

This series sits on top of the for-next tree that has the "fix read
repair on compressed extents v2" series included.  To make everyones life
easier a git tree is also available:

    git://git.infradead.org/users/hch/misc.git btrfs-bio-api-cleanup

Gitweb:

    http://git.infradead.org/users/hch/misc.git/shortlog/refs/heads/btrfs-bio-api-cleanup

Note that I've picked up the reviews and tested tags from the last
posting for the patches that are relatively unchainged or just split,
so they might appear a little inconsistent.

Changes since v1:
 - add two previously submitted patches skipped from an earlier
   series
 - merged one of those patches with one from this series
 - split one of the patches in this series into three
 - improve various commit logs

Diffstat:
 compression.c    |   43 ++-----
 ctree.h          |    1 
 dev-replace.c    |    5 
 disk-io.c        |   16 +-
 extent-io-tree.h |    4 
 extent_io.c      |  117 +++----------------
 extent_io.h      |    3 
 inode.c          |   57 ++++-----
 raid56.c         |   45 +------
 raid56.h         |    4 
 scrub.c          |    7 -
 super.c          |    6 
 volumes.c        |  337 ++++++++++++++++++++++++++++++++++++++-----------------
 volumes.h        |   20 ++-
 14 files changed, 340 insertions(+), 325 deletions(-)

^ permalink raw reply	[flat|nested] 33+ messages in thread
* btrfs I/O completion cleanup and single device I/O optimizations v3
@ 2022-08-06  8:03 Christoph Hellwig
  2022-08-06  8:03 ` [PATCH 08/11] btrfs: split submit_stripe_bio Christoph Hellwig
  0 siblings, 1 reply; 33+ messages in thread
From: Christoph Hellwig @ 2022-08-06  8:03 UTC (permalink / raw)
  To: Chris Mason, Josef Bacik, David Sterba
  Cc: Nikolay Borisov, Johannes Thumshirn, linux-btrfs

Hi all,

this series cleans up the btrfs_bio API, most prominently by splitting
the end_io handler for the highlevel bio from the low-level bio
bi_end_io, which are really confusingly coupled in the current code.
Once that is done it then optimizes the bio submission to not allocate
a btrfs_io_context for I/Os that just go to a single device.

Changes since v2:
 - fix a small comment typo

Changes since v1:
 - add two previously submitted patches skipped from an earlier
   series
 - merged one of those patches with one from this series
 - split one of the patches in this series into three
 - improve various commit logs

Diffstat:
 compression.c    |   43 ++-----
 ctree.h          |    1 
 dev-replace.c    |    5 
 disk-io.c        |   16 +-
 extent-io-tree.h |    4 
 extent_io.c      |  117 +++----------------
 extent_io.h      |    3 
 inode.c          |   57 ++++-----
 raid56.c         |   45 +------
 raid56.h         |    4 
 scrub.c          |    7 -
 super.c          |    6 
 volumes.c        |  337 ++++++++++++++++++++++++++++++++++++++-----------------
 volumes.h        |   20 ++-
 14 files changed, 340 insertions(+), 325 deletions(-)

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

end of thread, other threads:[~2022-09-09 12:40 UTC | newest]

Thread overview: 33+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-07-13  6:13 btrfs I/O completion cleanup and single device I/O optimizations v2 Christoph Hellwig
2022-07-13  6:13 ` [PATCH 01/11] btrfs: don't call bioset_integrity_create for btrfs_bioset Christoph Hellwig
2022-07-13  6:13 ` [PATCH 02/11] btrfs: move btrfs_bio allocation to volumes.c Christoph Hellwig
2022-07-13  6:13 ` [PATCH 03/11] btrfs: pass the operation to btrfs_bio_alloc Christoph Hellwig
2022-07-13  6:13 ` [PATCH 04/11] btrfs: don't take a bio_counter reference for cloned bios Christoph Hellwig
2022-07-13  6:27   ` Johannes Thumshirn
2022-07-13  6:13 ` [PATCH 05/11] btrfs: remove bioc->stripes_pending Christoph Hellwig
2022-07-13  6:31   ` Johannes Thumshirn
2022-07-13  6:41   ` Johannes Thumshirn
2022-07-14 12:15   ` Nikolay Borisov
2022-07-13  6:13 ` [PATCH 06/11] btrfs: properly abstract the parity raid bio handling Christoph Hellwig
2022-07-13  6:13 ` [PATCH 07/11] btrfs: give struct btrfs_bio a real end_io handler Christoph Hellwig
2022-07-13  6:47   ` Johannes Thumshirn
2022-07-13  6:51     ` Christoph Hellwig
2022-07-13  6:13 ` [PATCH 08/11] btrfs: split submit_stripe_bio Christoph Hellwig
2022-07-13  6:46   ` Johannes Thumshirn
2022-07-13  6:50     ` Christoph Hellwig
2022-07-13  6:52       ` Johannes Thumshirn
2022-07-14 14:02   ` Nikolay Borisov
2022-07-13  6:13 ` [PATCH 09/11] btrfs: simplify the submit_stripe_bio calling convention Christoph Hellwig
2022-07-13  6:49   ` Johannes Thumshirn
2022-07-14 14:30   ` Nikolay Borisov
2022-07-13  6:13 ` [PATCH 10/11] btrfs: make the btrfs_io_context allocation in __btrfs_map_block optional Christoph Hellwig
2022-07-13  9:58   ` Johannes Thumshirn
2022-07-13 11:18     ` Christoph Hellwig
2022-07-15  8:30     ` Nikolay Borisov
2022-07-13  6:13 ` [PATCH 11/11] btrfs: stop allocation a btrfs_io_context for simple I/O Christoph Hellwig
2022-09-06 13:12 ` btrfs I/O completion cleanup and single device I/O optimizations v2 David Sterba
2022-09-07  9:08   ` Christoph Hellwig
2022-09-09 12:34     ` David Sterba
2022-08-06  8:03 btrfs I/O completion cleanup and single device I/O optimizations v3 Christoph Hellwig
2022-08-06  8:03 ` [PATCH 08/11] btrfs: split submit_stripe_bio Christoph Hellwig
2022-08-19 23:37   ` Anand Jain
2022-08-19 23:56     ` Anand Jain

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.