aboutsummaryrefslogtreecommitdiffstats
path: root/mm/page-writeback.c
diff options
context:
space:
mode:
authorMiquel van Smoorenburg <mikevs@xs4all.net>2009-01-06 14:39:02 -0800
committerLinus Torvalds <torvalds@linux-foundation.org>2009-01-06 15:58:59 -0800
commit38c8e6180939e5619140b2e9e479cb26029ff8b1 (patch)
tree1980f3dadfa02ac6c1fc2ad7236205af54f7972a /mm/page-writeback.c
parentoom: print triggering task's cpuset and mems allowed (diff)
downloadlinux-dev-38c8e6180939e5619140b2e9e479cb26029ff8b1.tar.xz
linux-dev-38c8e6180939e5619140b2e9e479cb26029ff8b1.zip
do_mpage_readpage(): don't submit lots of small bios on boundary
While tracing I/O patterns with blktrace (a great tool) a few weeks ago I identified a minor issue in fs/mpage.c As the comment above mpage_readpages() says, a fs's get_block function will set BH_Boundary when it maps a block just before a block for which extra I/O is required. Since get_block() can map a range of pages, for all these pages the BH_Boundary flag will be set. But we only need to push what I/O we have accumulated at the last block of this range. This makes do_mpage_readpage() send out the largest possible bio instead of a bunch of page-sized ones in the BH_Boundary case. Signed-off-by: Miquel van Smoorenburg <mikevs@xs4all.net> Cc: Nick Piggin <nickpiggin@yahoo.com.au> Cc: Jens Axboe <jens.axboe@oracle.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm/page-writeback.c')
0 files changed, 0 insertions, 0 deletions