Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751791AbdGYL6O (ORCPT ); Tue, 25 Jul 2017 07:58:14 -0400 Received: from mx2.suse.de ([195.135.220.15]:46123 "EHLO mx1.suse.de" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750980AbdGYL6M (ORCPT ); Tue, 25 Jul 2017 07:58:12 -0400 Date: Tue, 25 Jul 2017 13:58:08 +0200 From: Michal Hocko To: Roman Gushchin Cc: linux-mm@kvack.org, Tejun Heo , Johannes Weiner , Vladimir Davydov , kernel-team@fb.com, cgroups@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] mm, memcg: reset low limit during memcg offlining Message-ID: <20170725115808.GE26723@dhcp22.suse.cz> References: <20170725114047.4073-1-guro@fb.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20170725114047.4073-1-guro@fb.com> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1908 Lines: 59 On Tue 25-07-17 12:40:47, Roman Gushchin wrote: > A removed memory cgroup with a defined low limit and some belonging > pagecache has very low chances to be freed. > > If a cgroup has been removed, there is likely no memory pressure inside > the cgroup, and the pagecache is protected from the external pressure > by the defined low limit. The cgroup will be freed only after > the reclaim of all belonging pages. And it will not happen until > there are any reclaimable memory in the system. That means, > there is a good chance, that a cold pagecache will reside > in the memory for an undefined amount of time, wasting > system resources. > > Fix this issue by zeroing memcg->low during memcg offlining. Very well spotted! This goes all the way down to low limit inclusion AFAICS. I would be even tempted to mark it for stable because hiding some memory from reclaim basically indefinitely is not good. We might have been just lucky nobody has noticed that yet. Fixes: 241994ed8649 ("mm: memcontrol: default hierarchy interface for memory") > Signed-off-by: Roman Gushchin > Cc: Tejun Heo > Cc: Johannes Weiner > Cc: Michal Hocko > Cc: Vladimir Davydov > Cc: kernel-team@fb.com > Cc: cgroups@vger.kernel.org > Cc: linux-mm@kvack.org > Cc: linux-kernel@vger.kernel.org Acked-by: Michal Hocko Thanks! > --- > mm/memcontrol.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/mm/memcontrol.c b/mm/memcontrol.c > index aed11b2d0251..2aa204b8f9fd 100644 > --- a/mm/memcontrol.c > +++ b/mm/memcontrol.c > @@ -4300,6 +4300,8 @@ static void mem_cgroup_css_offline(struct cgroup_subsys_state *css) > } > spin_unlock(&memcg->event_list_lock); > > + memcg->low = 0; > + > memcg_offline_kmem(memcg); > wb_memcg_offline(memcg); > > -- > 2.13.3 -- Michal Hocko SUSE Labs