From 97817fc71e1fd0e8fe3f385b00dd16ed64f655ab Mon Sep 17 00:00:00 2001 From: Shantanu Goel Date: Fri, 3 Feb 2017 15:05:57 -0500 Subject: [PATCH] vmscan: do not shrink slab if LRU size is 0 Some memcg's may not have any LRU pages in them so shrink_slab incorrectly ends up free'ing a huge portion of the slab. Signed-off-by: Shantanu Goel --- mm/vmscan.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/mm/vmscan.c b/mm/vmscan.c index 4205b3e..7682469 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -445,6 +445,9 @@ static unsigned long shrink_slab(gfp_t gfp_mask, int nid, if (memcg && (!memcg_kmem_enabled() || !mem_cgroup_online(memcg))) return 0; + if (nr_eligible == 0) + return 0; + if (nr_scanned == 0) nr_scanned = SWAP_CLUSTER_MAX; -- 2.7.4