• Christoph Hellwig's avatar
    iomap: don't chain bios · ae5535ef
    Christoph Hellwig authored
    Back in the days when a single bio could only be filled to the hardware
    limits, and we scheduled a work item for each bio completion, chaining
    multiple bios for a single ioend made a lot of sense to reduce the number
    of completions.  But these days bios can be filled until we reach the
    number of vectors or total size limit, which means we can always fit at
    least 1 megabyte worth of data in the worst case, but usually a lot more
    due to large folios.  The only thing bio chaining is buying us now is
    to reduce the size of the allocation from an ioend with an embedded bio
    into a plain bio, which is a 52 bytes differences on 64-bit systems.
    
    This is not worth the added complexity, so remove the bio chaining and
    only use the bio embedded into the ioend.  This will help to simplify
    further changes to the iomap writeback code.
    Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
    Link: https://lore.kernel.org/r/20231207072710.176093-10-hch@lst.deReviewed-by: default avatarDarrick J. Wong <djwong@kernel.org>
    Signed-off-by: default avatarChristian Brauner <brauner@kernel.org>
    ae5535ef
buffered-io.c 55.5 KB