• D
    xfs: build bios directly in xfs_add_to_ioend · bb18782a
    Dave Chinner 提交于
    Currently adding a buffer to the ioend and then building a bio from
    the buffer list are two separate operations. We don't build the bios
    and submit them until the ioend is submitted, and this places a
    fixed dependency on bufferhead chaining in the ioend.
    
    The first step to removing the bufferhead chaining in the ioend is
    on the IO submission side. We can build the bio directly as we add
    the buffers to the ioend chain, thereby removing the need for a
    latter "buffer-to-bio" submission loop. This allows us to submit
    bios on large ioends as soon as we cannot add more data to the bio.
    
    These bios then get captured by the active plug, and hence will be
    dispatched as soon as either the plug overflows or we schedule away
    from the writeback context. This will reduce submission latency for
    large IOs, but will also allow more timely request queue based
    writeback blocking when the device becomes congested.
    Signed-off-by: NDave Chinner <dchinner@redhat.com>
    [hch: various small updates]
    Signed-off-by: NChristoph Hellwig <hch@lst.de>
    Reviewed-by: NBrian Foster <bfoster@redhat.com>
    Signed-off-by: NDave Chinner <david@fromorbit.com>
    
    bb18782a
xfs_aops.h 2.6 KB