[PATCH v2][mmotm-2009-0625-1549] prevent to reclaim anon page oflumpy reclaim for no swap space

From: Minchan Kim
Date: Sat Jun 27 2009 - 00:12:22 EST


Since v1.
* fix - prevent anon page which already don't have swap slot
(by Rik van Riel suggestion)
* change some comment

== CUT HERE ==

This patch prevent to reclaim anon page in case of no swap space.

VM already prevent to reclaim anon page in various place.
But it doesnt't prevent it for lumpy reclaim.

It shuffles lru list unnecessary so that it is pointless.

__isolate_lru_page is called on slow path so that some condition
check could be not critical about performance.

Signed-off-by: Minchan Kim <minchan.kim@xxxxxxxxx>
Cc: Mel Gorman <mel@xxxxxxxxx>
Cc: KOSAKI Motohiro <kosaki.motohiro@xxxxxxxxxxxxxx>
Cc: Rik van Riel <riel@xxxxxxxxxx>
Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@xxxxxxxxxxxxxx>

--- mm/vmscan.c.orig 2009-06-27 12:30:41.000000000 +0900
+++ mm/vmscan.c 2009-06-27 12:32:00.000000000 +0900
@@ -830,7 +830,13 @@ int __isolate_lru_page(struct page *page
* When this function is being called for lumpy reclaim, we
* initially look into all LRU pages, active, inactive and
* unevictable; only give shrink_page_list evictable pages.
+ *
+ * If we don't have enough swap space, reclaiming of anon page
+ * which don't already have a swap slot is pointless.
*/
+ if (nr_swap_pages <= 0 && (PageAnon(page) && !PageSwapCache(page)))
+ return ret;
+
if (PageUnevictable(page))
return ret;


--
Kinds Regards,
Minchan Kim
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/