From: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> To: Greg Thelen <gthelen@google.com> Cc: linux-mm@kvack.org, "nishimura\@mxp.nes.nec.co.jp" <nishimura@mxp.nes.nec.co.jp>, "balbir\@linux.vnet.ibm.com" <balbir@linux.vnet.ibm.com>, m-ikeda@ds.jp.nec.com, "akpm\@linux-foundation.org" <akpm@linux-foundation.org>, "linux-kernel\@vger.kernel.org" <linux-kernel@vger.kernel.org>, kamezawa.hiroyuki@gmail.com, "menage\@google.com" <menage@google.com>, "lizf\@cn.fujitsu.com" <lizf@cn.fujitsu.com> Subject: Re: [PATCH 1/5] cgroup: ID notification call back Date: Tue, 24 Aug 2010 16:18:13 +0900 [thread overview] Message-ID: <20100824161813.a63bedf3.kamezawa.hiroyu@jp.fujitsu.com> (raw) In-Reply-To: <xr93bp8sqxzu.fsf@ninji.mtv.corp.google.com> On Tue, 24 Aug 2010 00:19:01 -0700 Greg Thelen <gthelen@google.com> wrote: > KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> writes: > > > CC'ed to Paul Menage and Li Zefan. > > == > > From: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> > > > > When cgroup subsystem use ID (ss->use_id==1), each css's ID is assigned > > after successful call of ->create(). css_ID is tightly coupled with > > css struct itself but it is allocated by ->create() call, IOW, > > per-subsystem special allocations. > > > > To know css_id before creation, this patch adds id_attached() callback. > > after css_ID allocation. This will be used by memory cgroup's quick lookup > > routine. > > > > Maybe you can think of other implementations as > > - pass ID to ->create() > > or > > - add post_create() > > etc... > > But when considering dirtiness of codes, this straightforward patch seems > > good to me. If someone wants post_create(), this patch can be replaced. > > > > Changelog: 20100820 > > - new approarch. > > > > Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> > > --- > > Documentation/cgroups/cgroups.txt | 10 ++++++++++ > > include/linux/cgroup.h | 1 + > > kernel/cgroup.c | 5 ++++- > > 3 files changed, 15 insertions(+), 1 deletion(-) > > > > Index: mmotm-0811/Documentation/cgroups/cgroups.txt > > =================================================================== > > --- mmotm-0811.orig/Documentation/cgroups/cgroups.txt > > +++ mmotm-0811/Documentation/cgroups/cgroups.txt > > @@ -621,6 +621,16 @@ and root cgroup. Currently this will onl > > the default hierarchy (which never has sub-cgroups) and a hierarchy > > that is being created/destroyed (and hence has no sub-cgroups). > > > > +void id_attached(struct cgroup_subsys *ss, struct cgroup *root) > > +(cgroup_mutex and ss->hierarchy_mutex held by caller) > > +(called only when ss->use_id=1) > > + > > +Called when css_id is attached to css. Because css_id is assigned > > +against "css", css_id is not available until ->create() is called. > > +If subsystem wants to make use of ID at createtion time, use > > Minor spelling correction: s/createtion/creation/ > ok. > > +this handler. This handler will be called after css_id is assigned > > +to css. Not necessary to be implemented in usual(see memcontrol.c) > > Maybe this sounds better? > > "This handler is not usually needed. See memcontrol.c for an example." > Sure. will fix. > > + > > 4. Questions > > ============ > > > > Index: mmotm-0811/include/linux/cgroup.h > > =================================================================== > > --- mmotm-0811.orig/include/linux/cgroup.h > > +++ mmotm-0811/include/linux/cgroup.h > > @@ -475,6 +475,7 @@ struct cgroup_subsys { > > struct cgroup *cgrp); > > void (*post_clone)(struct cgroup_subsys *ss, struct cgroup *cgrp); > > void (*bind)(struct cgroup_subsys *ss, struct cgroup *root); > > + void (*id_attached)(struct cgroup_subsys *ss, struct cgroup *cgrp); > > > > int subsys_id; > > int active; > > Index: mmotm-0811/kernel/cgroup.c > > =================================================================== > > --- mmotm-0811.orig/kernel/cgroup.c > > +++ mmotm-0811/kernel/cgroup.c > > @@ -4618,6 +4618,8 @@ static int __init_or_module cgroup_init_ > > newid->stack[0] = newid->id; > > newid->css = rootcss; > > rootcss->id = newid; > > + if (ss->id_attached) > > + ss->id_attached(ss, dummytop); > > return 0; > > } > > > > @@ -4646,7 +4648,8 @@ static int alloc_css_id(struct cgroup_su > > * see cgroup_populate_dir() > > */ > > rcu_assign_pointer(child_css->id, child_id); > > - > > + if (ss->id_attached) > > + ss->id_attached(ss, child); > > return 0; > > } > > > Thank you for review. -Kame
WARNING: multiple messages have this Message-ID (diff)
From: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> To: Greg Thelen <gthelen@google.com> Cc: linux-mm@kvack.org, "nishimura@mxp.nes.nec.co.jp" <nishimura@mxp.nes.nec.co.jp>, "balbir@linux.vnet.ibm.com" <balbir@linux.vnet.ibm.com>, m-ikeda@ds.jp.nec.com, "akpm@linux-foundation.org" <akpm@linux-foundation.org>, "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>, kamezawa.hiroyuki@gmail.com, "menage@google.com" <menage@google.com>, "lizf@cn.fujitsu.com" <lizf@cn.fujitsu.com> Subject: Re: [PATCH 1/5] cgroup: ID notification call back Date: Tue, 24 Aug 2010 16:18:13 +0900 [thread overview] Message-ID: <20100824161813.a63bedf3.kamezawa.hiroyu@jp.fujitsu.com> (raw) In-Reply-To: <xr93bp8sqxzu.fsf@ninji.mtv.corp.google.com> On Tue, 24 Aug 2010 00:19:01 -0700 Greg Thelen <gthelen@google.com> wrote: > KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> writes: > > > CC'ed to Paul Menage and Li Zefan. > > == > > From: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> > > > > When cgroup subsystem use ID (ss->use_id==1), each css's ID is assigned > > after successful call of ->create(). css_ID is tightly coupled with > > css struct itself but it is allocated by ->create() call, IOW, > > per-subsystem special allocations. > > > > To know css_id before creation, this patch adds id_attached() callback. > > after css_ID allocation. This will be used by memory cgroup's quick lookup > > routine. > > > > Maybe you can think of other implementations as > > - pass ID to ->create() > > or > > - add post_create() > > etc... > > But when considering dirtiness of codes, this straightforward patch seems > > good to me. If someone wants post_create(), this patch can be replaced. > > > > Changelog: 20100820 > > - new approarch. > > > > Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> > > --- > > Documentation/cgroups/cgroups.txt | 10 ++++++++++ > > include/linux/cgroup.h | 1 + > > kernel/cgroup.c | 5 ++++- > > 3 files changed, 15 insertions(+), 1 deletion(-) > > > > Index: mmotm-0811/Documentation/cgroups/cgroups.txt > > =================================================================== > > --- mmotm-0811.orig/Documentation/cgroups/cgroups.txt > > +++ mmotm-0811/Documentation/cgroups/cgroups.txt > > @@ -621,6 +621,16 @@ and root cgroup. Currently this will onl > > the default hierarchy (which never has sub-cgroups) and a hierarchy > > that is being created/destroyed (and hence has no sub-cgroups). > > > > +void id_attached(struct cgroup_subsys *ss, struct cgroup *root) > > +(cgroup_mutex and ss->hierarchy_mutex held by caller) > > +(called only when ss->use_id=1) > > + > > +Called when css_id is attached to css. Because css_id is assigned > > +against "css", css_id is not available until ->create() is called. > > +If subsystem wants to make use of ID at createtion time, use > > Minor spelling correction: s/createtion/creation/ > ok. > > +this handler. This handler will be called after css_id is assigned > > +to css. Not necessary to be implemented in usual(see memcontrol.c) > > Maybe this sounds better? > > "This handler is not usually needed. See memcontrol.c for an example." > Sure. will fix. > > + > > 4. Questions > > ============ > > > > Index: mmotm-0811/include/linux/cgroup.h > > =================================================================== > > --- mmotm-0811.orig/include/linux/cgroup.h > > +++ mmotm-0811/include/linux/cgroup.h > > @@ -475,6 +475,7 @@ struct cgroup_subsys { > > struct cgroup *cgrp); > > void (*post_clone)(struct cgroup_subsys *ss, struct cgroup *cgrp); > > void (*bind)(struct cgroup_subsys *ss, struct cgroup *root); > > + void (*id_attached)(struct cgroup_subsys *ss, struct cgroup *cgrp); > > > > int subsys_id; > > int active; > > Index: mmotm-0811/kernel/cgroup.c > > =================================================================== > > --- mmotm-0811.orig/kernel/cgroup.c > > +++ mmotm-0811/kernel/cgroup.c > > @@ -4618,6 +4618,8 @@ static int __init_or_module cgroup_init_ > > newid->stack[0] = newid->id; > > newid->css = rootcss; > > rootcss->id = newid; > > + if (ss->id_attached) > > + ss->id_attached(ss, dummytop); > > return 0; > > } > > > > @@ -4646,7 +4648,8 @@ static int alloc_css_id(struct cgroup_su > > * see cgroup_populate_dir() > > */ > > rcu_assign_pointer(child_css->id, child_id); > > - > > + if (ss->id_attached) > > + ss->id_attached(ss, child); > > return 0; > > } > > > Thank you for review. -Kame -- 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: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2010-08-24 7:23 UTC|newest] Thread overview: 87+ messages / expand[flat|nested] mbox.gz Atom feed top 2010-08-20 9:55 [PATCH] memcg: towards I/O aware memcg v5 KAMEZAWA Hiroyuki 2010-08-20 9:55 ` KAMEZAWA Hiroyuki 2010-08-20 9:58 ` [PATCH 1/5] cgroup: ID notification call back KAMEZAWA Hiroyuki 2010-08-20 9:58 ` KAMEZAWA Hiroyuki 2010-08-24 7:19 ` Greg Thelen 2010-08-24 7:19 ` Greg Thelen 2010-08-24 7:18 ` KAMEZAWA Hiroyuki [this message] 2010-08-24 7:18 ` KAMEZAWA Hiroyuki 2010-08-24 9:04 ` Li Zefan 2010-08-24 9:04 ` Li Zefan 2010-08-24 23:58 ` KAMEZAWA Hiroyuki 2010-08-24 23:58 ` KAMEZAWA Hiroyuki 2010-08-25 0:11 ` Paul Menage 2010-08-25 0:11 ` Paul Menage 2010-08-25 0:17 ` KAMEZAWA Hiroyuki 2010-08-25 0:17 ` KAMEZAWA Hiroyuki 2010-08-25 0:25 ` Paul Menage 2010-08-25 0:25 ` Paul Menage 2010-08-25 0:09 ` Paul Menage 2010-08-25 0:09 ` Paul Menage 2010-08-25 0:20 ` KAMEZAWA Hiroyuki 2010-08-25 0:20 ` KAMEZAWA Hiroyuki 2010-08-25 0:34 ` Paul Menage 2010-08-25 0:34 ` Paul Menage 2010-08-25 0:37 ` KAMEZAWA Hiroyuki 2010-08-25 0:37 ` KAMEZAWA Hiroyuki 2010-08-25 0:46 ` Paul Menage 2010-08-25 0:46 ` Paul Menage 2010-08-25 1:03 ` KAMEZAWA Hiroyuki 2010-08-25 1:03 ` KAMEZAWA Hiroyuki 2010-08-25 1:35 ` Paul Menage 2010-08-25 1:35 ` Paul Menage 2010-08-25 1:42 ` KAMEZAWA Hiroyuki 2010-08-25 1:42 ` KAMEZAWA Hiroyuki 2010-08-25 1:52 ` Paul Menage 2010-08-25 1:52 ` Paul Menage 2010-08-25 2:29 ` KAMEZAWA Hiroyuki 2010-08-25 2:29 ` KAMEZAWA Hiroyuki 2010-08-20 9:59 ` [PATCH 2/5] memcg: use array and ID for quick look up KAMEZAWA Hiroyuki 2010-08-20 9:59 ` KAMEZAWA Hiroyuki 2010-08-23 3:35 ` Daisuke Nishimura 2010-08-23 3:35 ` Daisuke Nishimura 2010-08-23 23:51 ` KAMEZAWA Hiroyuki 2010-08-23 23:51 ` KAMEZAWA Hiroyuki 2010-08-24 0:19 ` Daisuke Nishimura 2010-08-24 0:19 ` Daisuke Nishimura 2010-08-24 7:44 ` Greg Thelen 2010-08-24 7:44 ` Greg Thelen 2010-08-24 7:42 ` KAMEZAWA Hiroyuki 2010-08-24 7:42 ` KAMEZAWA Hiroyuki 2010-08-20 10:01 ` [PATCH] memcg: use ID in page_cgroup KAMEZAWA Hiroyuki 2010-08-20 10:01 ` KAMEZAWA Hiroyuki 2010-08-20 10:05 ` KAMEZAWA Hiroyuki 2010-08-23 5:32 ` Daisuke Nishimura 2010-08-23 5:32 ` Daisuke Nishimura 2010-08-23 23:52 ` KAMEZAWA Hiroyuki 2010-08-23 23:52 ` KAMEZAWA Hiroyuki 2010-08-24 1:14 ` Daisuke Nishimura 2010-08-24 1:14 ` Daisuke Nishimura 2010-08-24 1:54 ` KAMEZAWA Hiroyuki 2010-08-24 1:54 ` KAMEZAWA Hiroyuki 2010-08-24 4:04 ` Daisuke Nishimura 2010-08-24 4:04 ` Daisuke Nishimura 2010-08-24 6:05 ` KAMEZAWA Hiroyuki 2010-08-24 6:05 ` KAMEZAWA Hiroyuki 2010-08-24 7:47 ` Greg Thelen 2010-08-24 7:47 ` Greg Thelen 2010-08-24 7:51 ` KAMEZAWA Hiroyuki 2010-08-24 7:51 ` KAMEZAWA Hiroyuki 2010-08-24 8:35 ` Greg Thelen 2010-08-24 8:35 ` Greg Thelen 2010-08-24 8:38 ` KAMEZAWA Hiroyuki 2010-08-24 8:38 ` KAMEZAWA Hiroyuki 2010-08-20 10:02 ` [PATCH 4/5] memcg: lockless update of file_mapped KAMEZAWA Hiroyuki 2010-08-20 10:02 ` KAMEZAWA Hiroyuki 2010-08-23 8:50 ` Daisuke Nishimura 2010-08-23 8:50 ` Daisuke Nishimura 2010-08-23 23:49 ` KAMEZAWA Hiroyuki 2010-08-23 23:49 ` KAMEZAWA Hiroyuki 2010-08-24 0:19 ` Daisuke Nishimura 2010-08-24 0:19 ` Daisuke Nishimura 2010-08-20 10:03 ` [PATCH 5/5] memcg: generic file accounting update function KAMEZAWA Hiroyuki 2010-08-20 10:03 ` KAMEZAWA Hiroyuki 2010-08-24 7:46 ` [PATCH] memcg: towards I/O aware memcg v5 Balbir Singh 2010-08-24 7:46 ` Balbir Singh 2010-08-24 7:59 ` KAMEZAWA Hiroyuki 2010-08-24 7:59 ` KAMEZAWA Hiroyuki
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20100824161813.a63bedf3.kamezawa.hiroyu@jp.fujitsu.com \ --to=kamezawa.hiroyu@jp.fujitsu.com \ --cc=akpm@linux-foundation.org \ --cc=balbir@linux.vnet.ibm.com \ --cc=gthelen@google.com \ --cc=kamezawa.hiroyuki@gmail.com \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mm@kvack.org \ --cc=lizf@cn.fujitsu.com \ --cc=m-ikeda@ds.jp.nec.com \ --cc=menage@google.com \ --cc=nishimura@mxp.nes.nec.co.jp \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.