From: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
To: balbir@linux.vnet.ibm.com
Cc: YAMAMOTO Takashi <yamamoto@valinux.co.jp>,
menage@google.com, xemul@openvz.org,
linux-kernel@vger.kernel.org, linux-mm@kvack.org,
containers@lists.osdl.org
Subject: Re: [RFC][-mm] Memory controller hierarchy support (v1)
Date: Mon, 21 Apr 2008 09:41:43 +0900 [thread overview]
Message-ID: <20080421094143.bfd27db3.kamezawa.hiroyu@jp.fujitsu.com> (raw)
In-Reply-To: <4809AE78.9030000@linux.vnet.ibm.com>
On Sat, 19 Apr 2008 14:04:00 +0530
Balbir Singh <balbir@linux.vnet.ibm.com> wrote:
> YAMAMOTO Takashi wrote:
> >> - spin_lock_irqsave(&counter->lock, flags);
> >> - ret = res_counter_charge_locked(counter, val);
> >> - spin_unlock_irqrestore(&counter->lock, flags);
> >> + *limit_exceeded_at = NULL;
> >> + local_irq_save(flags);
> >> + for (c = counter; c != NULL; c = c->parent) {
> >> + spin_lock(&c->lock);
> >> + ret = res_counter_charge_locked(c, val);
> >> + spin_unlock(&c->lock);
> >> + if (ret < 0) {
> >> + *limit_exceeded_at = c;
> >> + goto unroll;
> >> + }
> >> + }
> >> + local_irq_restore(flags);
> >> + return 0;
> >> +
> >> +unroll:
> >> + for (unroll_c = counter; unroll_c != c; unroll_c = unroll_c->parent) {
> >> + spin_lock(&unroll_c->lock);
> >> + res_counter_uncharge_locked(unroll_c, val);
> >> + spin_unlock(&unroll_c->lock);
> >> + }
> >> + local_irq_restore(flags);
> >> return ret;
> >> }
> >
> > i wonder how much performance impacts this involves.
> >
> > it increases the number of atomic ops per charge/uncharge and
> > makes the common case (success) of every charge/uncharge in a system
> > touch a global (ie. root cgroup's) cachelines.
> >
>
> Yes, it does. I'll run some tests to see what the overhead looks like. The
> multi-hierarchy feature is very useful though and one of the TODOs is to make
> the feature user selectable (possibly at run-time)
>
I think multilevel cgroup is useful but this routines handling of hierarchy
seems never good. An easy idea to aginst this is making a child borrow some
amount of charge from its parent for reducing checks.
If you go this way, please show possibility to reducing overhead in your plan.
BTW, do you have ideas of attributes for children<->parent other than 'limit' ?
For example, 'priority' between childlen.
Thanks,
-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:[~2008-04-21 0:41 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-04-19 5:35 Balbir Singh
2008-04-19 6:56 ` YAMAMOTO Takashi
2008-04-19 8:34 ` Balbir Singh
2008-04-21 0:41 ` KAMEZAWA Hiroyuki [this message]
2008-04-19 10:47 ` Pavel Emelyanov
2008-04-20 7:43 ` Balbir Singh
2008-04-19 15:49 ` Paul Menage
2008-04-20 8:16 ` Balbir Singh
2008-04-21 6:33 ` Paul Jackson
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=20080421094143.bfd27db3.kamezawa.hiroyu@jp.fujitsu.com \
--to=kamezawa.hiroyu@jp.fujitsu.com \
--cc=balbir@linux.vnet.ibm.com \
--cc=containers@lists.osdl.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=menage@google.com \
--cc=xemul@openvz.org \
--cc=yamamoto@valinux.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