as i understand it, when a page fault occurs and the requested page isn't
already in the page cache, the whole cluster is read in. however, the
read operations are non-blocking -- after all the reads are scheduled,
filemap_nopage waits for the specific requested page.
so, if you want a page fault to trigger the next cluster too, a way of
doing that easily with the current code base is to schedule all the reads
for the current cluster, then schedule all the reads for the next cluster,
then wait for the requested page. that's almost identical to doubling the
cluster size.
however, if the cluster size is 128k, and the requested page is in the
second half of the cluster, then you've "read behind." on the other hand
by triggering the next cluster, you have 128k of potentially more
interesting data, since more fresh data is likely to be ahead of the
current page request.
i may have missed your point, though.
- Chuck Lever
-- corporate: <chuckl@netscape.com> personal: <chucklever@netscape.net> or <cel@monkey.org>The Linux Scalability project: http://www.citi.umich.edu/projects/linux-scalability/
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/