From mboxrd@z Thu Jan 1 00:00:00 1970 From: Glauber Costa Subject: Re: [PATCH] memcg: don't do cleanup manually if mem_cgroup_css_online() fails Date: Tue, 2 Apr 2013 18:20:56 +0400 Message-ID: <515AE948.1000704@parallels.com> References: <515A8A40.6020406@huawei.com> <20130402121600.GK24345@dhcp22.suse.cz> <20130402141646.GQ24345@dhcp22.suse.cz> Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <20130402141646.GQ24345-2MMpYkNvuYDjFM9bn6wA6Q@public.gmane.org> Sender: cgroups-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org List-ID: Content-Type: text/plain; charset="us-ascii" To: Michal Hocko Cc: Li Zefan , Johannes Weiner , KAMEZAWA Hiroyuki , LKML , Cgroups , linux-mm-Bw31MaZKKs3YtjvyW6yDsg@public.gmane.org On 04/02/2013 06:16 PM, Michal Hocko wrote: > mem_cgroup_css_online > memcg_init_kmem > mem_cgroup_get # refcnt = 2 > memcg_update_all_caches > memcg_update_cache_size # fails with ENOMEM Here is the thing: this one in kmem only happens for kmem enabled memcgs. For those, we tend to do a get once, and put only when the last kmem reference is gone. For non-kmem memcgs, refcnt will be 1 here, and will be balanced out by the mem_cgroup_put() in css_free.