From: Daisuke Nishimura <nishimura@mxp.nes.nec.co.jp>
To: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: Linux Containers <containers@lists.osdl.org>,
Linux MM <linux-mm@kvack.org>,
Balbir Singh <balbir@linux.vnet.ibm.com>,
Pavel Emelyanov <xemul@openvz.org>,
YAMAMOTO Takashi <yamamoto@valinux.co.jp>,
Hugh Dickins <hugh@veritas.com>,
"IKEDA, Munehiro" <m-ikeda@ds.jp.nec.com>
Subject: Re: [PATCH 3/4] swapcgroup: implement charge/uncharge
Date: Fri, 23 May 2008 20:52:29 +0900 [thread overview]
Message-ID: <4836AFFD.3060605@mxp.nes.nec.co.jp> (raw)
In-Reply-To: <20080522163748.74e9bd4f.kamezawa.hiroyu@jp.fujitsu.com>
On 2008/05/22 16:37 +0900, KAMEZAWA Hiroyuki wrote:
> On Thu, 22 May 2008 15:20:05 +0900
> Daisuke Nishimura <nishimura@mxp.nes.nec.co.jp> wrote:
>
>> +#ifdef CONFIG_CGROUP_SWAP_RES_CTLR
>> +int swap_cgroup_charge(struct page *page,
>> + struct swap_info_struct *si,
>> + unsigned long offset)
>> +{
>> + int ret;
>> + struct page_cgroup *pc;
>> + struct mem_cgroup *mem;
>> +
>> + lock_page_cgroup(page);
>> + pc = page_get_page_cgroup(page);
>> + if (unlikely(!pc))
>> + mem = &init_mem_cgroup;
>> + else
>> + mem = pc->mem_cgroup;
>> + unlock_page_cgroup(page);
>
> If !pc, the page is used before memory controller is available. But is it
> good to be charged to init_mem_cgroup() ?
I'm sorry, but I can't understand this situation.
memory controller is initialized at kernel initialization,
so aren't processes created after it is initialized?
> How about returning 'failure' in this case ? I think returning 'failure' here
> is not so bad.
>
>
Which of below do you mean by 'failure'?
A. make it fail to get swap entry, so the page cannot be swapped out.
B. don't charge this swap entry to any cgroup, but the page
would be swapped out.
I don't want to do B, because I don't want to make such
not-charged-to-anywhere entries.
And I've seen several times this condition(!pc) becomes true,
so I charged to init_mem_cgroup.
BTW, I noticed that almost all of functions I added by this patch set
should check "mem_cgroup_subsys.disabled" first because it depend on
memory cgroup.
>> +
>> + css_get(&mem->css);
>
> move this css_get() before unlock_page_cgroup() is safer.
>
OK, 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:[~2008-05-23 11:52 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-05-22 6:13 [PATCH 0/4] swapcgroup(v2) Daisuke Nishimura
2008-05-22 6:17 ` [PATCH 1/4] swapcgroup: add cgroup files Daisuke Nishimura
2008-05-22 6:18 ` [PATCH 2/4] swapcgroup: add member to swap_info_struct for cgroup Daisuke Nishimura
2008-05-22 7:23 ` KAMEZAWA Hiroyuki
2008-05-22 8:46 ` Daisuke Nishimura
2008-05-22 9:35 ` KAMEZAWA Hiroyuki
2008-05-22 6:20 ` [PATCH 3/4] swapcgroup: implement charge/uncharge Daisuke Nishimura
2008-05-22 7:37 ` KAMEZAWA Hiroyuki
2008-05-23 11:52 ` Daisuke Nishimura [this message]
2008-05-26 0:57 ` KAMEZAWA Hiroyuki
2008-05-27 13:42 ` KAMEZAWA Hiroyuki
2008-05-22 6:22 ` [PATCH 4/4] swapcgroup: modify vm_swap_full for cgroup Daisuke Nishimura
2008-05-22 6:45 ` YAMAMOTO Takashi
2008-05-22 12:34 ` Daisuke Nishimura
2008-05-25 23:35 ` YAMAMOTO Takashi
2008-05-22 7:39 ` KAMEZAWA Hiroyuki
2008-05-22 8:00 ` KOSAKI Motohiro
2008-05-22 12:22 ` Daisuke Nishimura
2008-05-22 12:32 ` KOSAKI Motohiro
2008-05-23 12:26 ` Daisuke Nishimura
2008-05-22 7:44 ` [PATCH 0/4] swapcgroup(v2) KAMEZAWA Hiroyuki
2008-05-23 2:10 ` Daisuke Nishimura
2008-05-23 2:42 ` Daisuke Nishimura
2008-05-22 21:27 ` Balbir Singh
2008-05-23 4:27 ` Daisuke Nishimura
2008-05-27 7:31 ` YAMAMOTO Takashi
2008-05-27 7:42 ` Balbir Singh
2008-05-27 8:30 ` Daisuke Nishimura
2008-05-27 13:18 ` Balbir Singh
2008-05-27 13:42 ` Daisuke Nishimura
2008-05-27 13:46 ` Balbir Singh
2008-05-27 14:00 ` Daisuke Nishimura
2008-05-23 2:26 ` Rik van Riel
2008-05-23 3:10 ` KAMEZAWA Hiroyuki
2008-05-23 3:32 ` Rik van Riel
2008-05-23 3:59 ` Balbir Singh
2008-05-23 4:30 ` KOSAKI Motohiro
2008-05-23 4:51 ` Balbir Singh
2008-05-23 5:23 ` KAMEZAWA Hiroyuki
2008-05-23 5:29 ` David Singleton
2008-05-23 6:00 ` KOSAKI Motohiro
2008-05-23 6:45 ` Balbir Singh
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=4836AFFD.3060605@mxp.nes.nec.co.jp \
--to=nishimura@mxp.nes.nec.co.jp \
--cc=balbir@linux.vnet.ibm.com \
--cc=containers@lists.osdl.org \
--cc=hugh@veritas.com \
--cc=kamezawa.hiroyu@jp.fujitsu.com \
--cc=linux-mm@kvack.org \
--cc=m-ikeda@ds.jp.nec.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