summaryrefslogtreecommitdiffstats
path: root/fs/orangefs
diff options
context:
space:
mode:
authorDave Chinner <dchinner@redhat.com>2016-04-06 08:11:25 +1000
committerDave Chinner <david@fromorbit.com>2016-04-06 08:11:25 +1000
commitbb18782aa47d8cde90fed5cb0af312642e98a4fa (patch)
treea601e8c8ff55fbe799ba2068ac981df8d87af0be /fs/orangefs
parentf55532a0c0b8bb6148f4e07853b876ef73bc69ca (diff)
downloadlinux-bb18782aa47d8cde90fed5cb0af312642e98a4fa.tar.gz
linux-bb18782aa47d8cde90fed5cb0af312642e98a4fa.tar.bz2
linux-bb18782aa47d8cde90fed5cb0af312642e98a4fa.zip
xfs: build bios directly in xfs_add_to_ioend
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: Dave Chinner <dchinner@redhat.com> [hch: various small updates] Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Brian Foster <bfoster@redhat.com> Signed-off-by: Dave Chinner <david@fromorbit.com>
Diffstat (limited to 'fs/orangefs')
0 files changed, 0 insertions, 0 deletions