[PATCH v2 0/8] enable bs > ps for block devices

Luis Chamberlain
2025-02-04T23:12:15Z

This v2 addresses feedback from the first RFC on enabling bs > ps for
block devices [0] after which I split the async read buffer-head work
into its own series [1]. This unifies the series now that this the
buffer-head work is greatly simplified, and generalizing a block size
check is now merged upstream on v6.14-rc1.

Changes in this series:

- Simplify block_read_full_folio() with bh_offset() and moves this
as a first patch
- Re-orders the negative shift patch to go first as otherwise
the blocks_per_folio changes don't make any sense
- Simplifies the amount of changes in the patch
"enable large folio support for large logical block sizes" as most
of the required changes are now upstream
- Drops the NVMe patch as its no longer needed
- Keeps the nrpages to 1 for readahead for folio for buffer-heads
as suggested by Matthew
- Takes the suggested approach by Matthew Wilcox on async read by
replacing the batched read with a straight forward iteration
- Tons of cosmetic updates as requested by folks
- Rebases on top of v6.14-rc1
- Tested with both fstests on ext4 and blktests using the latest
changes posted to support bs > ps for block devices just now [2]
- Updates the rationale for why we use 64k as the current limit:
test and validation

If you want this on a tree, this is available on the kdevops linux
large-block-buffer-heads-for-next branch [3].

[0] https://lkml.kernel.org/r/20241113094727.1497722-1-mcgrof@kernel.org
[1] https://lkml.kernel.org/r/20241218022626.3668119-1-mcgrof@kernel.org
[2] https://lkml.kernel.org/r/20250204225729.422949-1-mcgrof@kernel.org
[3] https://github.com/linux-kdevops/linux/tree/large-block-buffer-heads-for-next

Hannes Reinecke (3):
fs/mpage: avoid negative shift for large blocksize
fs/mpage: use blocks_per_folio instead of blocks_per_page
block/bdev: enable large folio support for large logical block sizes

Luis Chamberlain (4):
fs/buffer: simplify block_read_full_folio() with bh_offset()
fs/buffer fs/mpage: remove large folio restriction
block/bdev: lift block size restrictions to 64k
bdev: use bdev_io_min() for statx block size

Matthew Wilcox (1):
fs/buffer: remove batching from async read

block/bdev.c | 11 ++++----
fs/buffer.c | 58 +++++++++++++++++-------------------------
fs/mpage.c | 45 +++++++++++++++-----------------
include/linux/blkdev.h | 9 ++++++-
4 files changed, 58 insertions(+), 65 deletions(-)

--
2.45.2