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

  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