Re: Time for a pre-patch-2.0.31-3?

Dr. Werner Fink (werner@suse.de)
Thu, 3 Jul 1997 16:26:20 +0200


> I'd suspect the change at the end of refill_freelist(), and
> try_to_free_page() to be causing some problems - mainly with throwing away
> readahead pages.
>
> The priority GFP_BUFFER now cause page reaping, normally from the
> page-cache in mm/filemap.c/shrink_mmap(). As unmapped pages are not
> aged (and, no, please do not try to age them!), they are easy targets.
> Unfortunately, pages which have been read-ahead are unmapped...

Hmm ... this would explain why the read preformance goes down.
Dave? Is there a simple solution around? Something like switching back
to GFP_ATOMIC for buffer heads, using GFP_BUFFER in refill_freelist
say upto `nr_free_pages > 10' and after this mark use GFP_ATOMIC
for grow_buffers() ? Clearly without loosing the win of swaping
on buffer request :-)

... a compromise is needed.

>
> Previously, refill_freelist() wouldn't grow buffers if there was not
> enough free-memory available, and if the GFP_ATOMIC failed 'bdflush' would
> be run.
>
> Trying running 'top' to find out the highwater of buffers with and without
> the patch.
>
> This is just I guess. I haven't been able to try the patch out.

What's about age_page() in shrink_mmap() mm/filemap.c ... any suggestions
or hints. Is there a fast way to get the age of the pte's?

Werner