Re: [RFC][PATCH] vm_swap_full

Ed Tomlinson (tomlins@cam.org)
Mon, 5 Nov 2001 07:37:59 -0500


Think of it this way. nr_swap_pages is the ammount of space
available for new swap pages. nr inactive pages is the ammount
of pages we know that just might get swapped - so we want to be
sure we keep space in swap for them. The logic I am trying to
implement is to switch to aggressive swap (reclaim the swap space
at page in) when we are in at risk of filling swap. IMO we
do not way to reclaim until we have too, as there are gains to
be had if we page in a page,it does not get changed and we have
memory pressure.

The test as it stood would be fine for machines with small swap.
Some applications (SAP for instance) recommend swap as 3 x memory.
If you have 2G memory and 6G swap it does not make much sense to
start unmapping swap pages at swap in when you have only 3G in
swap. It does make sense to do this when you have less than
600M of free swap pages. Problem is to decide what is a reasonable
threshold. Since the inactive list is what can get swapped out,
using its size as the metric makes sense.

Ed Tomlinson

Mike Fedyk wrote:

> On Sun, Nov 04, 2001 at 09:58:17PM -0500, Ed Tomlinson wrote:
>> On November 4, 2001 09:08 pm, Mike Fedyk wrote:
>> > On Sun, Nov 04, 2001 at 02:36:34PM -0200, Rik van Riel wrote:
>> > > On Sun, 4 Nov 2001, Ed Tomlinson wrote:
>> > > > -/* Swap 50% full? Release swapcache more aggressively.. */
>> > > > -#define vm_swap_full() (nr_swap_pages*2 < total_swap_pages)
>> > > > +/* Free swap less than inactive pages? Release swapcache more
>> > > > aggressively.. */ +#define vm_swap_full() (nr_swap_pages <
>> > > > nr_inactive_pages)
>> > > >
>> > > > Comments?
>> > >
>> > > Makes absolutely no sense for systems which have more
>> > > swap than RAM, eg. a 64MB system with 200MB of swap.
>> >
>> > How does the inactive list get bigger than physical ram?
>> >
>> > If swap is bigger than ram, there is *no* possibility of the inactive
>> > list being bigger than swap, and thus no aggressive swapping...
>>
>> nr_swap_pages is the number of swap pages free.
>
> Oh, I thought it was total swap pages...
>
>>The idea is to start
>> aggressive swap only when we are at risk of running out of swap. This
>> way we get to take full advantage of throwing away clean pages that are
>> backed up by swap when under vm pressure.
>>
> Yes. My point is that the inactive list can't get bigger than RAM, and
> thus if swap is bigger than ram this case wouldn't trigger...
>
> But now that nr_swap_pages is *free* swap, you'll have to add another test
> for (swap > RAM)...
>
> Mike
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/