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 <minc...@kernel.org>
---
 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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to