From mboxrd@z Thu Jan 1 00:00:00 1970 From: Glauber Costa Subject: Re: [RFC][PATCH 3/7] memcg: use css_get/put when charging/uncharging kmem Date: Fri, 5 Apr 2013 14:19:40 +0400 Message-ID: <515EA53C.3060403@parallels.com> References: <515BF233.6070308@huawei.com> <515BF284.7060401@huawei.com> Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <515BF284.7060401-hv44wF8Li93QT0dZR+AlfA@public.gmane.org> Sender: cgroups-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org List-ID: Content-Type: text/plain; charset="us-ascii" To: Li Zefan Cc: linux-mm-Bw31MaZKKs3YtjvyW6yDsg@public.gmane.org, LKML , Cgroups , Tejun Heo , Michal Hocko , KAMEZAWA Hiroyuki , Johannes Weiner On 04/03/2013 01:12 PM, Li Zefan wrote: > Use css_get/put instead of mem_cgroup_get/put. > > We can't do a simple replacement, because here mem_cgroup_put() > is called during mem_cgroup_css_free(), while mem_cgroup_css_free() > won't be called until css refcnt goes down to 0. > > Instead we increment css refcnt in mem_cgroup_css_offline(), and > then check if there's still kmem charges. If not, css refcnt will > be decremented, otherwise the refcnt will be decremented when > kmem charges goes down to 0. That is okay, it should work. From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from psmtp.com (na3sys010amx123.postini.com [74.125.245.123]) by kanga.kvack.org (Postfix) with SMTP id 34F116B009A for ; Fri, 5 Apr 2013 06:19:08 -0400 (EDT) Message-ID: <515EA53C.3060403@parallels.com> Date: Fri, 5 Apr 2013 14:19:40 +0400 From: Glauber Costa MIME-Version: 1.0 Subject: Re: [RFC][PATCH 3/7] memcg: use css_get/put when charging/uncharging kmem References: <515BF233.6070308@huawei.com> <515BF284.7060401@huawei.com> In-Reply-To: <515BF284.7060401@huawei.com> Content-Type: text/plain; charset="GB2312" Content-Transfer-Encoding: 7bit Sender: owner-linux-mm@kvack.org List-ID: To: Li Zefan Cc: linux-mm@kvack.org, LKML , Cgroups , Tejun Heo , Michal Hocko , KAMEZAWA Hiroyuki , Johannes Weiner On 04/03/2013 01:12 PM, Li Zefan wrote: > Use css_get/put instead of mem_cgroup_get/put. > > We can't do a simple replacement, because here mem_cgroup_put() > is called during mem_cgroup_css_free(), while mem_cgroup_css_free() > won't be called until css refcnt goes down to 0. > > Instead we increment css refcnt in mem_cgroup_css_offline(), and > then check if there's still kmem charges. If not, css refcnt will > be decremented, otherwise the refcnt will be decremented when > kmem charges goes down to 0. That is okay, it should work. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: email@kvack.org From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1161760Ab3DEKTN (ORCPT ); Fri, 5 Apr 2013 06:19:13 -0400 Received: from mx2.parallels.com ([199.115.105.18]:60180 "EHLO mx2.parallels.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1765868Ab3DEKTM (ORCPT ); Fri, 5 Apr 2013 06:19:12 -0400 Message-ID: <515EA53C.3060403@parallels.com> Date: Fri, 5 Apr 2013 14:19:40 +0400 From: Glauber Costa User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130311 Thunderbird/17.0.4 MIME-Version: 1.0 To: Li Zefan CC: , LKML , Cgroups , Tejun Heo , Michal Hocko , KAMEZAWA Hiroyuki , Johannes Weiner Subject: Re: [RFC][PATCH 3/7] memcg: use css_get/put when charging/uncharging kmem References: <515BF233.6070308@huawei.com> <515BF284.7060401@huawei.com> In-Reply-To: <515BF284.7060401@huawei.com> Content-Type: text/plain; charset="GB2312" Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 04/03/2013 01:12 PM, Li Zefan wrote: > Use css_get/put instead of mem_cgroup_get/put. > > We can't do a simple replacement, because here mem_cgroup_put() > is called during mem_cgroup_css_free(), while mem_cgroup_css_free() > won't be called until css refcnt goes down to 0. > > Instead we increment css refcnt in mem_cgroup_css_offline(), and > then check if there's still kmem charges. If not, css refcnt will > be decremented, otherwise the refcnt will be decremented when > kmem charges goes down to 0. That is okay, it should work.