From: Pavel Emelyanov <xemul@openvz.org>
To: kamezawa.hiroyu@jp.fujitsu.com
Cc: linux-mm@kvack.org, LKML <linux-kernel@vger.kernel.org>,
menage@google.com, balbir@linux.vnet.ibm.com,
yamamoto@valinux.co.jp, nishimura@mxp.nes.nec.co.jp,
lizf@cn.fujitsu.com
Subject: Re: [PATCH 1/6] res_counter: handle limit change
Date: Mon, 16 Jun 2008 11:51:04 +0400 [thread overview]
Message-ID: <48561B68.6060503@openvz.org> (raw)
In-Reply-To: <33011576.1213601977563.kamezawa.hiroyu@jp.fujitsu.com>
kamezawa.hiroyu@jp.fujitsu.com wrote:
> ----- Original Message -----
>>> + * registered callbacks etc...for res_counter.
>>> + */
>>> + struct res_counter_ops ops;
>>> + /*
> Now, write to limit is done in following path.
> sys_write() -> write_func of subsys -> write in res_counter ->
> strategy callback -> set limit -> return
>
> Because stragety callback is called in res_counter, we can only do
> something after set-limit without callback. So res_counter should call
> another callback before set-limit if it can fail.
>
>> Why would we need such? All res_counter.limit update comes via the appropiate
>> cgroup's files, so it can do whatever it needs w/o any callbacks?
>>
>
> First reason is that this allows us to implement generic algorithm to
> handle limit change. Second is that generic algorithm can be a stack of
> functions. I don't like to pass function pointers through several stack
> of functions. (And this design allow the code to be much easier to read.
> My first version used an argument of function pointer but it was verrry ugly.)
>
> I think when I did all in memcg, someone will comment that "why do that
> all in memcg ? please implement generic one to avoid code duplication"
Hm... But we're choosing between
sys_write->xxx_cgroup_write->res_counter_set_limit->xxx_cgroup_call
and
sys_write->xxx_cgroup_write->res_counter_set_limit
->xxx_cgroup_call
With the sizeof(void *)-bytes difference in res_counter, nNo?
>> And (if we definitely need one) isn't it better to make it a
>> struct res_counter_ops *ops;
>> pointer?
>>
> My first version did that. When I added hierarchy_model to ops(see later patch
> ), I made use of copy of ops. But maybe you're right. Keeping
> res_counter small is important. I'll use pointer in v5.
>
> 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-06-16 7:51 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-06-13 9:27 [PATCH 0/6] memcg: hierarchy updates (v4) KAMEZAWA Hiroyuki
2008-06-13 9:29 ` [PATCH 1/6] res_counter: handle limit change KAMEZAWA Hiroyuki
2008-06-16 6:38 ` Pavel Emelyanov
2008-06-16 7:39 ` kamezawa.hiroyu
2008-06-16 7:51 ` Pavel Emelyanov [this message]
2008-06-16 8:17 ` kamezawa.hiroyu
2008-06-16 8:23 ` Pavel Emelyanov
2008-06-16 8:32 ` kamezawa.hiroyu
2008-06-16 8:47 ` Pavel Emelyanov
2008-06-16 9:01 ` kamezawa.hiroyu
2008-06-16 8:53 ` kamezawa.hiroyu
2008-06-16 9:00 ` Pavel Emelyanov
2008-06-16 8:57 ` Balbir Singh
2008-06-16 8:59 ` Pavel Emelyanov
2008-06-16 9:04 ` kamezawa.hiroyu
2008-06-16 12:29 ` Balbir Singh
2008-06-16 13:26 ` kamezawa.hiroyu
2008-06-20 5:09 ` Paul Menage
2008-06-23 22:40 ` Randy Dunlap
2008-06-13 9:30 ` [PATCH 2/6] memcg: " KAMEZAWA Hiroyuki
2008-06-13 9:31 ` [PATCH 3/6] memcg: reset limit at rmdir KAMEZAWA Hiroyuki
2008-06-13 9:34 ` [PATCH 4/6] res_counter: basic hierarchy support KAMEZAWA Hiroyuki
2008-06-23 22:37 ` Randy Dunlap
2008-06-13 9:36 ` [PATCH 5/6] res_counter: HARDWALL hierarchy KAMEZAWA Hiroyuki
2008-06-13 9:37 ` [PATCH 6/6] memcg: " KAMEZAWA Hiroyuki
2008-06-23 22:29 ` Randy Dunlap
2008-06-24 3:37 ` 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=48561B68.6060503@openvz.org \
--to=xemul@openvz.org \
--cc=balbir@linux.vnet.ibm.com \
--cc=kamezawa.hiroyu@jp.fujitsu.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=lizf@cn.fujitsu.com \
--cc=menage@google.com \
--cc=nishimura@mxp.nes.nec.co.jp \
--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