public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/13] btrfs: clean up RAID I/O geometry calculation
@ 2023-12-12 12:37 Johannes Thumshirn
  2023-12-12 12:37 ` [PATCH 01/13] btrfs: factor out helper for single device IO check Johannes Thumshirn
                   ` (12 more replies)
  0 siblings, 13 replies; 26+ messages in thread
From: Johannes Thumshirn @ 2023-12-12 12:37 UTC (permalink / raw)
  To: Chris Mason, Josef Bacik, David Sterba
  Cc: linux-btrfs, linux-kernel, Johannes Thumshirn

The calculation of the RAID I/O geometry in btrfs_map_block has been a maze of
if-else statements for a very long time and the advent of the
raid-stripe-tree made the situation even worse.

This patchset refactors btrfs_map_block() to untagle the maze and make I/O
geometry setting easier to follow, but does not introduce any functional
changes.

I've also run it through Josef's CI and there have been test failures, but
none of them introduced by these patches.

---
Johannes Thumshirn (13):
      btrfs: factor out helper for single device IO check
      btrfs: re-introduce struct btrfs_io_geometry
      btrfs: factor out block-mapping for RAID0
      btrfs: factor out RAID1 block mapping
      btrfs: factor out block mapping for DUP profiles
      btrfs: factor out block mapping for RAID10
      btrfs: reduce scope of data_stripes in btrfs_map_block
      btrfs: factor out block mapping for RAID5/6
      btrfs: factor out block mapping for single profiles
      btrfs: untagle if else maze in btrfs_map_block
      btrfs: open code set_io_stripe for RAID56
      btrfs: pass struct btrfs_io_geometry to set_io_stripe
      btrfs: pass btrfs_io_geometry into btrfs_max_io_len

 fs/btrfs/volumes.c | 388 +++++++++++++++++++++++++++++++++--------------------
 1 file changed, 245 insertions(+), 143 deletions(-)
---
base-commit: 14d1d39586246ca9d4ce97049c98be849e3bbcd9
change-id: 20231207-btrfs_map_block-cleanup-346f53aff90d

Best regards,
-- 
Johannes Thumshirn <johannes.thumshirn@wdc.com>


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

end of thread, other threads:[~2023-12-13 15:36 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-12-12 12:37 [PATCH 00/13] btrfs: clean up RAID I/O geometry calculation Johannes Thumshirn
2023-12-12 12:37 ` [PATCH 01/13] btrfs: factor out helper for single device IO check Johannes Thumshirn
2023-12-13  8:49   ` Christoph Hellwig
2023-12-12 12:38 ` [PATCH 02/13] btrfs: re-introduce struct btrfs_io_geometry Johannes Thumshirn
2023-12-12 12:38 ` [PATCH 03/13] btrfs: factor out block-mapping for RAID0 Johannes Thumshirn
2023-12-13  8:50   ` Christoph Hellwig
2023-12-13  9:02     ` Johannes Thumshirn
2023-12-12 12:38 ` [PATCH 04/13] btrfs: factor out RAID1 block mapping Johannes Thumshirn
2023-12-13  8:52   ` Christoph Hellwig
2023-12-12 12:38 ` [PATCH 05/13] btrfs: factor out block mapping for DUP profiles Johannes Thumshirn
2023-12-12 12:38 ` [PATCH 06/13] btrfs: factor out block mapping for RAID10 Johannes Thumshirn
2023-12-12 12:38 ` [PATCH 07/13] btrfs: reduce scope of data_stripes in btrfs_map_block Johannes Thumshirn
2023-12-12 12:38 ` [PATCH 08/13] btrfs: factor out block mapping for RAID5/6 Johannes Thumshirn
2023-12-13  8:53   ` Christoph Hellwig
2023-12-13  9:04     ` Johannes Thumshirn
2023-12-12 12:38 ` [PATCH 09/13] btrfs: factor out block mapping for single profiles Johannes Thumshirn
2023-12-12 12:38 ` [PATCH 10/13] btrfs: untagle if else maze in btrfs_map_block Johannes Thumshirn
2023-12-13  8:53   ` Christoph Hellwig
2023-12-12 12:38 ` [PATCH 11/13] btrfs: open code set_io_stripe for RAID56 Johannes Thumshirn
2023-12-13  8:58   ` Christoph Hellwig
2023-12-13  9:09     ` Johannes Thumshirn
2023-12-13  9:17       ` hch
2023-12-13  9:23         ` Johannes Thumshirn
2023-12-13 15:36     ` Johannes Thumshirn
2023-12-12 12:38 ` [PATCH 12/13] btrfs: pass struct btrfs_io_geometry to set_io_stripe Johannes Thumshirn
2023-12-12 12:38 ` [PATCH 13/13] btrfs: pass btrfs_io_geometry into btrfs_max_io_len Johannes Thumshirn

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox