On Tue, Dec 17, 2024 at 06:26:26PM -0800, Luis Chamberlain wrote: > Now that we can read asynchronously buffer heads from a folio in > chunks, we can chop up bh_read_iter() with a smaller array size. > Use an array of 8 to avoid stack growth warnings on systems with > huge base page sizes. > > Reviewed-by: Hannes Reinecke <hare@xxxxxxx> > Signed-off-by: Luis Chamberlain <mcgrof@xxxxxxxxxx> > --- > fs/buffer.c | 15 ++++++++++----- > 1 file changed, 10 insertions(+), 5 deletions(-) > > diff --git a/fs/buffer.c b/fs/buffer.c > index b8ba72f2f211..bfa9c09b8597 100644 > --- a/fs/buffer.c > +++ b/fs/buffer.c > @@ -2415,7 +2415,10 @@ static void bh_read_batch_async(struct folio *folio, > (__tmp); \ > (__tmp) = bh_next(__tmp, __head)) > > +#define MAX_BUF_CHUNK 8 > + > struct bh_iter { > + int chunk_number; > sector_t iblock; > get_block_t *get_block; > bool any_get_block_error; Oh... this can be cleaned up even further, chunk_idx and be removed now, and we can also remove the unused i variable... I'll wait for more feedback for a v2. Luis