Re: [rfc] [patch] mm: zone_reclaim fix for pseudo file systems

Christoph Lameter
2007-07-31T01:52:39Z

On Mon, 30 Jul 2007, Andrew Morton wrote:

> > zone reclaim only runs if there are unmapped file backed pages that can be
> > reclaimed. If the pages are all unreclaimable then they are all mapped and
> > global reclaim begins to run. The problem is with global reclaim as far as
> > I know.
>
> I don't understand how you conclude that.

That is how it is coded:

if (zone_page_state(zone, NR_FILE_PAGES) -
zone_page_state(zone, NR_FILE_MAPPED) >
zone->min_unmapped_pages) {
/*
* Free memory by calling shrink zone with increasing
* priorities until we have enough memory freed.
*/
priority = ZONE_RECLAIM_PRIORITY;
do {
note_zone_scanning_priority(zone, priority);
nr_reclaimed += shrink_zone(priority, zone, &sc);
priority--;
} while (priority >= 0 && nr_reclaimed < nr_pages);
}

> - Kiran saw CPU meltdown when "one of the processes got into zone reclaim".

We have seen the meltdown with regular reclaim in a number of cases due to
unreclaimable pages on the LRU causing heavy lock contention.

AFAIK There must be file backed pages that are unmapped and are not
reclaimable for zone reclaim to get into this state.