Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751878AbdGYMFm (ORCPT ); Tue, 25 Jul 2017 08:05:42 -0400 Received: from mail-lf0-f68.google.com ([209.85.215.68]:38505 "EHLO mail-lf0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750919AbdGYMFl (ORCPT ); Tue, 25 Jul 2017 08:05:41 -0400 Date: Tue, 25 Jul 2017 15:05:37 +0300 From: Vladimir Davydov To: Roman Gushchin Cc: linux-mm@kvack.org, Tejun Heo , Johannes Weiner , Michal Hocko , 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: <20170725120537.o4kgzjhcjcjmopzc@esperanza> 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> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1544 Lines: 43 On Tue, Jul 25, 2017 at 12:40:47PM +0100, 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. > > 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 > --- > 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); > We already have that - see mem_cgroup_css_reset().