With a bit of imagination, you might even be able to
call our current scheme two-handed...
Even though it's a bit different, it seems like we
have all advantages and none of the disadvantages of
a two-handed system. The main difference is that we
do I/O on the first hand and page eviction on the
second. This gives us a buffer of ready-to-evict
pages which we can easily free when we're in a hurry.
The only thing we really need now is a way to keep
track of (and manage) that buffer of freeable pages.
I believe Andrea has a patch for that -- we should
check it out and incorporate something like that ASAP.
There are several reasons why we need it:
- we should never run out of freeable pages
because that can introduce too much latency
and possibly even system instability
- page aging only is effective/optimal when the
freeable buffer is large enough
- when the freeable buffer is too large, we might
have too many soft pagefaults or other overhead
(not very much of a concern, but still...)
- keeping a more or less fixed distance between
both hands could make the I/O less bursty and
improve system I/O performance
Rik -- If a Microsoft product fails, who do you sue?
+-------------------------------------------------------------------+
| Linux memory management tour guide. riel@nl.linux.org |
| Scouting Vries cubscout leader. http://www.nl.linux.org/~riel |
+-------------------------------------------------------------------+
-
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/