[RFC 5/6] mm: reclaim lazyfree pages in swapless system

From: Minchan Kim
Date: Fri Mar 14 2014 - 02:39:05 EST


If there are lazyfree pages in system, shrink inactive anonymous
LRU to discard lazyfree pages regardless of existing avaialable
swap.

Signed-off-by: Minchan Kim <minchan@xxxxxxxxxx>
---
mm/vmscan.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/mm/vmscan.c b/mm/vmscan.c
index 98a1c3ffcaab..ad73e053c581 100644
--- a/mm/vmscan.c
+++ b/mm/vmscan.c
@@ -1889,8 +1889,13 @@ static void get_scan_count(struct lruvec *lruvec, struct scan_control *sc,
if (!global_reclaim(sc))
force_scan = true;

- /* If we have no swap space, do not bother scanning anon pages. */
- if (!sc->may_swap || (get_nr_swap_pages() <= 0)) {
+ /*
+ * If we have no swap space and lazyfree pages,
+ * do not bother scanning anon pages.
+ */
+ if (!sc->may_swap ||
+ (get_nr_swap_pages() <= 0 &&
+ zone_page_state(zone, NR_LAZYFREE_PAGES) <= 0)) {
scan_balance = SCAN_FILE;
goto out;
}
--
1.9.0

--
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/