Messages in this thread | | | From | "Stephen C. Tweedie" <> | Date | Tue, 20 Jul 1999 14:07:47 +0100 (BST) | Subject | Re: [RFC] - Some notions that I would like comments on |
| |
Hi,
On Mon, 19 Jul 1999 11:08:32 -0400 (EDT), Chuck Lever <cel@monkey.org> said:
> i understand why a little readbehind can be effective in the random > case, and even have some experimental evidence that this is true. have > you measured this or do you have a study on it?
Not much --- simply the observation that clustered readaround appears to be faster than strict readahead for binary paging.
> i'm not convinced that significant amounts of readbehind are effective > -- diminishing returns and all that.
For binaries, you can turn it around the other way --- it is no truer to assert that significant readahead is better than readbehind, once you are doing enough readahead to read in the majority of functions in one go. When code jumps between functions, it ends up doing so backwards about as much as forwards, in the absense of explicit optimisations.
Therefore, the current code doesn't care whether the readaround is backwards or forwards: rather, it is optimised for a different goal, which is to minimise the total number of IOs necessary to completely page in a section of a file. With clustered IOs, nearby page faults will result in the caching of an entire contiguous chunk of the file with no gaps.
> plus, libraries aren't the only thing that are mapped. what would the > best readaround strategy be for a mapped randomly accessed sleepycat index > file, for instance?
A very good question. Does anyone want to try this?
> yes, i've considered that. but i'd like some discussion about what you > and everyone else here thinks would be interesting to try. i know what > i'd like to try, but i'm a new kid.
The clustered mechanism is definitely used by some other OSes for paging. That, and strict readahead, seem the two best basic mechanisms to try, but the principle of triggering the next cluster readahead in advance of actually using it, for sequentially accessed memory maps, is still a valid extension to the existing simple clustering.
--Stephen
- 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/
| |