Re: [PATCH] iomap: Fix the write_count in iomap_add_to_ioend().

From: Christoph Hellwig
Date: Fri Aug 21 2020 - 02:01:49 EST


On Fri, Aug 21, 2020 at 09:11:40AM +1000, Dave Chinner wrote:
> On Wed, Aug 19, 2020 at 03:58:41PM +0530, Anju T Sudhakar wrote:
> > From: Ritesh Harjani <riteshh@xxxxxxxxxxxxx>
> >
> > __bio_try_merge_page() may return same_page = 1 and merged = 0.
> > This could happen when bio->bi_iter.bi_size + len > UINT_MAX.
>
> Ummm, silly question, but exactly how are we getting a bio that
> large in ->writepages getting built? Even with 64kB pages, that's a
> bio with 2^16 pages attached to it. We shouldn't be building single
> bios in writeback that large - what storage hardware is allowing
> such huge bios to be built? (i.e. can you dump all the values in
> /sys/block/<dev>/queue/* for that device for us?)

NVMe controller should not have a problem with such huge I/O,
especially if they support SGLs (extent based I/O :)) instead of the
default dumb PRP scheme. Higher end SCSI controller should also have
huge limits.