Re: Linux-2.1.129..

Eric W. Biederman
1998-11-24T03:23:38Z

>>>>> "LT" == Linus Torvalds <torvalds@transmeta.com> writes:

LT> On 23 Nov 1998, Eric W. Biederman wrote:
>>
ST> That would be true if we didn't do the free_page_and_swap_cache trick.
ST> However, doing that would require two passes: once by the swapper, and
ST> once by shrink_mmap(): before actually freeing a page.

LT> This is something I considered doing. It has various advantages, and it's
LT> almost done already in a sense: the swap cache thing is what would act as
LT> the buffer between the two passes.

LT> Then the page table scanning would never really page anything out: it
LT> would just move things into the swap cache. That makes the table scanner
LT> simpler, actually. The real page-out would be when the swap-cache is
LT> flushed to disk and then freed.

LT> I'd like to see this, although I think it's way too late for 2.2

Agreed.

But something quite similiar is still possible.

Not removing pages from the swap cache while they are in flight.
Letting shrink-mmap remove all of the clean pages from memory.

This can be implemented by simply removing code.

And it provides a weak kind of aging, so heavily used pages will not
be removed from memory, just minor faults will occur.

For 2.2 we can either experiment with minor variations on no swap
aging, taking a little longer. Or we can put it swap aging back in,
and run with a system people have confidence in already.

And now for my 2 cents.

For a policy more akin to what we have with the buffer cache I have
been working on generic dirty page handling for the whole page cache,
that I intend to send to submit for early 2.3.

Eric