[PATCH RFC] mm/vmscan: donot retry shrink zones when memcg is disabled

From: Yisheng Xie
Date: Fri Mar 10 2017 - 21:27:32 EST

From: Yisheng Xie <xieyisheng1@xxxxxxxxxx>

When we enter do_try_to_free_pages, the may_thrash is always clear, and
it will retry shrink zones to tap cgroup's reserves memory by setting
may_thrash when the former shrink_zones reclaim nothing.

However, if CONFIG_MEMCG=n, it should not do this useless retry at all,
for we do not have any cgroup's reserves memory to tap, and we have
already done hard work and made no progress.

Signed-off-by: Yisheng Xie <xieyisheng1@xxxxxxxxxx>
mm/vmscan.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/mm/vmscan.c b/mm/vmscan.c
index bc8031e..b03ccc1 100644
--- a/mm/vmscan.c
+++ b/mm/vmscan.c
@@ -2808,7 +2808,7 @@ static unsigned long do_try_to_free_pages(struct zonelist *zonelist,
return 1;

/* Untapped cgroup reserves? Don't OOM, retry. */
- if (!sc->may_thrash) {
+ if (!sc->may_thrash && IS_ENABLED(CONFIG_MEMCG)) {
sc->priority = initial_priority;
sc->may_thrash = 1;
goto retry;