From: Daisuke Nishimura <d-nishimura@mtf.biglobe.ne.jp>
To: Paul Menage <menage@google.com>
Cc: linux-mm <linux-mm@kvack.org>,
KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>,
Balbir Singh <balbir@linux.vnet.ibm.com>,
Li Zefan <lizf@cn.fujitsu.com>,
d-nishimura@mtf.biglobe.ne.jp,
Daisuke Nishimura <nishimura@mxp.nes.nec.co.jp>
Subject: Re: [RFC][PATCH 1/8] cgroup: introduce cancel_attach()
Date: Thu, 15 Oct 2009 20:08:39 +0900 [thread overview]
Message-ID: <20091015200839.f6c01bdb.d-nishimura@mtf.biglobe.ne.jp> (raw)
In-Reply-To: <6599ad830910150037j7aca0020mfbe29d6c03befbf7@mail.gmail.com>
Thank you for your comments.
On Thu, 15 Oct 2009 00:37:23 -0700
Paul Menage <menage@google.com> wrote:
> On Mon, Oct 12, 2009 at 9:50 PM, Daisuke Nishimura
> <nishimura@mxp.nes.nec.co.jp> wrote:
> > A int cgroup_attach_task(struct cgroup *cgrp, struct task_struct *tsk)
> > A {
> > A A A A int retval = 0;
> > - A A A struct cgroup_subsys *ss;
> > + A A A struct cgroup_subsys *ss, *fail = NULL;
>
> Maybe give this a more descriptive name, such as "failed_subsys" ?
>
will fix.
> > @@ -1553,8 +1553,10 @@ int cgroup_attach_task(struct cgroup *cgrp, struct task_struct *tsk)
> > A A A A for_each_subsys(root, ss) {
> > A A A A A A A A if (ss->can_attach) {
> > A A A A A A A A A A A A retval = ss->can_attach(ss, cgrp, tsk, false);
> > - A A A A A A A A A A A if (retval)
> > - A A A A A A A A A A A A A A A return retval;
> > + A A A A A A A A A A A if (retval) {
> > + A A A A A A A A A A A A A A A fail = ss;
>
> Comment here on why you set "fail" ?
> > +out:
> > + A A A if (retval)
> > + A A A A A A A for_each_subsys(root, ss) {
> > + A A A A A A A A A A A if (ss == fail)
>
> Comment here?
>
"fail" is used to call ->cancel_attach() only for subsystems
->can_attach() of which have succeeded.
> The problem with this API is that the subsystem doesn't know how long
> it needs to hold on to the potential rollback state for. The design
> for transactional cgroup attachment that I sent out over a year ago
> presented a more robust API, but I've not had time to work on it. So
> maybe this patch could be a stop-gap.
>
I digged my mail box and read your RFC, and I agree those APIs would be
more desirable.
In 2-8 of this patch-set, I do similar things as you proposed in the RFC.
I use ->can_attach() as prepare_attach_sleep(), ->attach() as commit_attach(),
and ->cancel_attach() as abort_attach_sleep(), so I think it wouldn't be so
difficult to adapt my interfaces to new API when it comes.
The reason why I introduced ->cancel_attach() is I need to cancel(do rollback)
the charge reservation against @to cgroup, which I've reserved in ->can_attach(),
and this patch is enough for my purpose for now.
Anyway, I'll add more comments.
Thanks,
Daisuke Nishimura.
--
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:[~2009-10-15 11:08 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-10-13 4:49 [RFC][PATCH 0/8] memcg: recharge at task move (Oct13) Daisuke Nishimura
2009-10-13 4:50 ` [RFC][PATCH 1/8] cgroup: introduce cancel_attach() Daisuke Nishimura
2009-10-15 7:37 ` Paul Menage
2009-10-15 8:50 ` Paul Menage
2009-10-15 11:08 ` Daisuke Nishimura [this message]
2009-10-13 4:51 ` [RFC][PATCH 2/8] memcg: cleanup mem_cgroup_move_parent() Daisuke Nishimura
2009-10-13 4:52 ` [RFC][PATCH 3/8] memcg: move memcg_tasklist mutex Daisuke Nishimura
2009-10-13 4:53 ` [RFC][PATCH 4/8] memcg: add interface to recharge at task move Daisuke Nishimura
2009-10-13 4:55 ` [RFC][PATCH 5/8] memcg: recharge charges of mapped page Daisuke Nishimura
2009-10-13 4:56 ` [RFC][PATCH 6/8] memcg: avoid oom during recharge at task move Daisuke Nishimura
2009-10-13 4:57 ` [RFC][PATCH 7/8] memcg: recharge charges of anonymous swap Daisuke Nishimura
2009-10-13 4:58 ` [RFC][PATCH 8/8] memcg: recharge charges of shmem swap Daisuke Nishimura
2009-10-14 7:03 ` [RFC][PATCH 0/8] memcg: recharge at task move (Oct13) KAMEZAWA Hiroyuki
2009-10-15 0:27 ` Daisuke Nishimura
-- strict thread matches above, loose matches on Subject: below --
2009-09-17 2:23 [RFC][EXPERIMENTAL][PATCH 0/8] memcg: migrate charge at task move Daisuke Nishimura
2009-09-17 7:01 ` Daisuke Nishimura
2009-09-24 5:42 ` [RFC][PATCH 0/8] memcg: migrate charge at task move (24/Sep) Daisuke Nishimura
2009-09-24 5:43 ` [RFC][PATCH 1/8] cgroup: introduce cancel_attach() Daisuke Nishimura
2009-09-24 6:33 ` KAMEZAWA Hiroyuki
2009-09-24 23:39 ` Daisuke Nishimura
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=20091015200839.f6c01bdb.d-nishimura@mtf.biglobe.ne.jp \
--to=d-nishimura@mtf.biglobe.ne.jp \
--cc=balbir@linux.vnet.ibm.com \
--cc=kamezawa.hiroyu@jp.fujitsu.com \
--cc=linux-mm@kvack.org \
--cc=lizf@cn.fujitsu.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: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox