Re: [PATCH/RFC] Simplified Readahead

From: Steven Pratt
Date: Mon Sep 27 2004 - 15:06:37 EST


Ram Pai wrote:

On Mon, 2004-09-27 at 08:30, Steven Pratt wrote:


Ram Pai wrote:


On Fri, 24 Sep 2004, Ram Pai wrote:



On Thu, 23 Sep 2004, Steven Pratt wrote:



..snip..


To summarize you noticed 3 problems:

1. page cache hits not handled properly.
2. readahead thrashing not accounted.
3. read congestion not accounted.




Yes.


Currently both the patches do not handle all the above cases.




No, thrashing was handled in the first patch, and both thrashing and page cache hits are handled in the second. Also, it seems to be the consensus that on normal I/O ignoring queue congestion is the right behavior.



So if your patch performs much better than the current one, than
it is the winner anyway. But past experience has shown that some
benchmark gets a hit for any small change. This happens to be tooo big
a change.



I agree, we need more people to test this.





I will fix the 3 problems you discovered in the current code.
And lets compare the two results.

Ok, great.

However you have more features in
your patch which will be the differentiating factor between the two
versions.

1. exponential increase and decrease of window size 2. overlapped read of current window and readahead window.
3. fixed slow-read path.
4. anything else?


No, I think that is it.

The readsize parameter comes in handy to incorporate the
the above features.


Yes, without it I think you still need to do the average calculations that you do today.

Also, remember that we did not re-write the readahead code just for the fun of it. It was simply the most efficient way we came up with to address the current issues as well as add the new features. The actual I/O patterns generated are not that different in most cases.

Steve


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/