Re: [PATCH] vmscan: skip freeing memory from zones with lots free

Rik van Riel
2008-11-29T17:58:32Z

Andrew Morton wrote:
> On Sat, 29 Nov 2008 11:47:25 -0500 Rik van Riel <riel@redhat.com> wrote:
>
>> Andrew Morton wrote:
>>
>>>> Index: linux-2.6.28-rc5/mm/vmscan.c
>>>> ===================================================================
>>>> --- linux-2.6.28-rc5.orig/mm/vmscan.c 2008-11-28 05:53:56.000000000 -0500
>>>> +++ linux-2.6.28-rc5/mm/vmscan.c 2008-11-28 06:05:29.000000000 -0500
>>>> @@ -1510,6 +1510,9 @@ static unsigned long shrink_zones(int pr
>>>> if (zone_is_all_unreclaimable(zone) &&
>>>> priority != DEF_PRIORITY)
>>>> continue; /* Let kswapd poll it */
>>>> + if (zone_watermark_ok(zone, sc->order,
>>>> + 4*zone->pages_high, high_zoneidx, 0))
>>>> + continue; /* Lots free already */
>>>> sc->all_unreclaimable = 0;
>>>> } else {
>>>> /*
>>> We already tried this, or something very similar in effect, I think...
>> Yes, we have a check just like this in balance_pgdat().
>>
>> It's been there forever with no ill effect.
>
> This patch affects direct reclaim as well as kswapd.

No, kswapd calls shrink_zone directly from balance_pgdat,
it does not go through shrink_zones.

>>> commit 26e4931632352e3c95a61edac22d12ebb72038fe
>>> Author: akpm <akpm>
>>> Date: Sun Sep 8 19:21:55 2002 +0000
>>>
>>> [PATCH] refill the inactive list more quickly
>>>
>>> Fix a problem noticed by Ed Tomlinson: under shifting workloads the
>>> shrink_zone() logic will refill the inactive load too slowly.
>>>
>>> Bale out of the zone scan when we've reclaimed enough pages. Fixes a
>>> rarely-occurring problem wherein refill_inactive_zone() ends up
>>> shuffling 100,000 pages and generally goes silly.
>> This is not a bale out, this is a "skip zones that have way
>> too many free pages already".
>
> It is similar in effect.
>
> Will this new patch reintroduce the problem which
> 26e4931632352e3c95a61edac22d12ebb72038fe fixed?

Googling on 26e4931632352e3c95a61edac22d12ebb72038fe only finds
your emails with that commit id in it - which git tree do I
need to search to get that changeset?

--
All rights reversed.