On Wed, 2007-25-07 at 15:19 +1000, Nick Piggin wrote: > What *I* think is supposed to happen is that newly read in pages get > put on the inactive list, and unless they get accessed againbefore > being reclaimed, they are allowed to fall off the end of the list > without disturbing active data too much. > > I think there is a missing piece here, that we used to ease the reclaim > pressure off the active list when the inactive list grows relatively > much larger than it (which could indicate a lot of use-once pages in > the system).
Maybe a new list should be added to put newly read pages in it. If they are not used or used once after a certain period, they can be moved to the inactive list (or whatever). Newly read pages... - ... not used after this period are excessive readahead, we discard immediately. - ... used only once after this period, we discard soon. - ... used many/frequently are moved to active list. Surely the scan rate (do I make sense?) should be different for this newly-read list and the inactive list. I also remember your split mapped/unmapped active list patches from a while ago. Can someone point me to a up-to-date documentation about the Linux VM? The books and documents I've seen are outdated. > I think I've been banned from touching vmscan.c, but if you're keen to > try a patch, I might be convinced to come out of retirement :) I'm more than willing! Now that CFS is merged, redirect your energies from nicksched to nick-vm ;) Patches against any tree (stable, linus, mm, rt) are good. But I prefer the last stable release because it narrows down the possible problems that a moving target like the development tree may have. I test this on my main system, so patches with basic testing and reasonable stability are preferred. I just want to avoid data corruption bugs. FYI, I used to run the -rt tree most of the time. > One man's trash is another's treasure: some people will want the > files to remain in cache because they'll use them again (copy it > somewhere else, or start editing it after being copied or whatever). > > But yeah, we can probably do better at the sequential read/write > case. Sure, but there are many hints to detect this: *large* (> most of the RAM), *streaming*, *used once* But if a program mmap() a 3/4 of the RAM area and "play" in it, it's a good sign that the streaming code shouldn't be active. - Eric - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/