On Fri, Mar 10, 2017 at 6:19 PM, Yisheng Xie <ysxie@xxxxxxxxxxx> wrote: > 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)) { In my opinion it should be even more restrictive (restricting cgroup_disabled=memory boot option and cgroup legacy hierarchy). So, instead of IS_ENABLED(CONFIG_MEMCG), the check should be something like (cgroup_subsys_enabled(memory_cgrp_subsys) && cgroup_subsys_on_dfl(memory_cgrp_subsys)). > sc->priority = initial_priority; > sc->may_thrash = 1; > goto retry; > -- > 1.9.1 > > > -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>