Re: [2.1.130-3] Page cache DEFINATELY too persistant... feature?

Rik van Riel
1998-11-30T01:06:43Z

On 30 Nov 1998, Zlatko Calusic wrote:
> Rik van Riel <H.H.vanRiel@phys.uu.nl> writes:

> > that (or abolish the percentages completely) kswapd
> > doesn't have an incentive to switch from a succesful
> > round of swap_out() -- which btw doesn't free any
> > actual memory so kswapd just continues doing that --
> > to shrink_mmap().
>
> Yep, this is the conclusion of my experiments, too.

> I made the following change in do_try_to_free_page():

[SNIP]

> Unfortunately, this really killed swapout performance, so I dropped
> the idea. Even letting swap_out do more passes, before changing state,
> didn't feel good.
>
> One other idea I had, was to replace (code at the very beginning of
> do_try_to_free_page()):
>
> if (buffer_over_borrow() || pgcache_over_borrow())
> shrink_mmap(i, gfp_mask);
>
> with:
>
> if (buffer_over_borrow() || pgcache_over_borrow())
> state = 0;

I am now trying:
if (buffer_over_borrow() || pgcache_over_borrow() ||
atomic_read(&nr_async_pages)
shrink_mmap(i, gfp_mask);

Note that this doesn't stop kswapd from swapping out so
swapout performance shouldn't suffer. It does however
free up memory so kswapd should _terminate_ and keep the
amount of I/O done to a sane level.

Note that I'm running with my experimentas swapin readahead
patch enabled so the system should be stressed even more
than normally :)

cheers,

Rik -- now completely used to dvorak kbd layout...
+-------------------------------------------------------------------+
| Linux memory management tour guide. H.H.vanRiel@phys.uu.nl |
| Scouting Vries cubscout leader. http://www.phys.uu.nl/~riel/ |
+-------------------------------------------------------------------+