linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
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>

  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