Messages in this thread | | | Date | Thu, 3 Jul 1997 16:26:20 +0200 | From | "Dr. Werner Fink" <> | Subject | Re: Time for a pre-patch-2.0.31-3? |
| |
> 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
| |