From mboxrd@z Thu Jan 1 00:00:00 1970 Received: by ug-out-1314.google.com with SMTP id u40so578051ugc.29 for ; Fri, 28 Mar 2008 03:46:43 -0700 (PDT) Message-ID: <47ECBD4A.8080908@gmail.com> Date: Fri, 28 Mar 2008 10:41:30 +0100 From: Jiri Slaby MIME-Version: 1.0 Subject: Re: [-mm] Add an owner to the mm_struct (v2) References: <20080328082316.6961.29044.sendpatchset@localhost.localdomain> In-Reply-To: <20080328082316.6961.29044.sendpatchset@localhost.localdomain> Content-Type: text/plain; charset=ISO-8859-2; format=flowed Content-Transfer-Encoding: 7bit Sender: owner-linux-mm@kvack.org Return-Path: To: Balbir Singh Cc: Paul Menage , Pavel Emelianov , Hugh Dickins , Sudhir Kumar , YAMAMOTO Takashi , lizf@cn.fujitsu.com, linux-kernel@vger.kernel.org, taka@valinux.co.jp, linux-mm@kvack.org, David Rientjes , Andrew Morton , KAMEZAWA Hiroyuki List-ID: On 03/28/2008 09:23 AM, Balbir Singh wrote: > This patch removes the mem_cgroup member from mm_struct and instead adds > an owner. This approach was suggested by Paul Menage. The advantage of > this approach is that, once the mm->owner is known, using the subsystem > id, the cgroup can be determined. It also allows several control groups > that are virtually grouped by mm_struct, to exist independent of the memory > controller i.e., without adding mem_cgroup's for each controller, > to mm_struct. > > The code initially assigns mm->owner to the task and then after the > thread group leader is identified. The mm->owner is changed to the thread > group leader of the task later at the end of copy_process. > > A new config option CONFIG_MM_OWNER is added and the memory resource > controller now depends on this config option. > > NOTE: This patch was developed on top of 2.6.25-rc5-mm1 and is applied on top > of the memory-controller-move-to-own-slab patch (which is already present > in the Andrew's patchset). > > These patches have been tested on a powerpc 64 bit box and on x86_64 box with > several microbenchmarks and some simple memory controller testing. > > Signed-off-by: Balbir Singh > --- > > include/linux/memcontrol.h | 14 ++++++++- > include/linux/mm_types.h | 6 ++-- > include/linux/sched.h | 19 ++++++++++++ > init/Kconfig | 13 ++++++++ > kernel/exit.c | 66 +++++++++++++++++++++++++++++++++++++++++++++ > kernel/fork.c | 26 +++++++++++++++++ > mm/memcontrol.c | 19 +++++++----- > 7 files changed, 151 insertions(+), 12 deletions(-) > > diff -puN include/linux/mm_types.h~memory-controller-add-mm-owner include/linux/mm_types.h > --- linux-2.6.25-rc5/include/linux/mm_types.h~memory-controller-add-mm-owner 2008-03-28 09:30:47.000000000 +0530 > +++ linux-2.6.25-rc5-balbir/include/linux/mm_types.h 2008-03-28 12:26:59.000000000 +0530 > @@ -227,8 +227,10 @@ struct mm_struct { > /* aio bits */ > rwlock_t ioctx_list_lock; > struct kioctx *ioctx_list; > -#ifdef CONFIG_CGROUP_MEM_RES_CTLR > - struct mem_cgroup *mem_cgroup; > +#ifdef CONFIG_MM_OWNER > + spinlock_t owner_lock; > + struct task_struct *owner; /* The thread group leader that */ Doesn't make sense to switch them (spinlock is unsigned int on x86, what's sizeof between and after?)? -- 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