From: Balbir Singh <balbir@linux.vnet.ibm.com>
To: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: "linux-mm@kvack.org" <linux-mm@kvack.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"menage@google.com" <menage@google.com>,
"nishimura@mxp.nes.nec.co.jp" <nishimura@mxp.nes.nec.co.jp>
Subject: Re: [RFC][PATCH 0/6] memcg updates (05/Nov)
Date: Thu, 06 Nov 2008 12:24:11 +0530 [thread overview]
Message-ID: <49129493.9070103@linux.vnet.ibm.com> (raw)
In-Reply-To: <20081105171637.1b393333.kamezawa.hiroyu@jp.fujitsu.com>
KAMEZAWA Hiroyuki wrote:
> Weekly (RFC) update for memcg.
>
> This set includes
>
> 1. change force_empty to do move account rather than forget all
I would like this to be selectable, please. We don't want to break behaviour and
not everyone would like to pay the cost of movement.
> 2. swap cache handling
> 3. mem+swap controller kconfig
> 4. swap_cgroup for rememver swap account information
> 5. mem+swap controller core
> 6. synchronize memcg's LRU and global LRU.
>
> "1" is already sent, "6" is a newcomer.
> I'd like to push out "2" or "2-5" in the next week (if no bugs.)
>
> after 6, next candidates are
> - dirty_ratio handler
> - account move at task move.
>
> Some more explanation about purpose of "6". (see details in patch itself)
> Now, one of complicated logic in memcg is LRU handling. Because the place of
> lru_head depends on page_cgroup->mem_cgroup pointer, we have to take
> lock as following even under zone->lru_lock.
> ==
> pc = lookup_page_cgroup(page);
> if (!trylock_page_cgroup(pc))
> return -EBUSY;
>
> if (PageCgroupUsed(pc)) {
> struct mem_cgroup_per_zone *mz = page_cgroup_zoneinfo(pc);
> spin_lock_irqsave(&mz->lru_lock, flags);
> ....some operation on LRU.
> spin_unlock_irqrestore(&mz->lru_lock, flags);
> }
> unlock_page_cgroup(pc);
> ==
> Sigh..
>
> After "6", page_cgroup's LRU management can be done independently to some extent.
> == as
> (zone->lru_lock is held here)
> pc = lookup_page_cgroup(page);
> list operation on pc.
> (unlock zone->lru_lock)
> ==
> Maybe good for maintainance and as a bonus, we can make use of isolate_lru_page() when
> doing some racy operation.
>
> isolate_lru_page(page);
> pc = lookup_page_cgroup(page);
> do some jobs.
> putback_lru_page(page);
>
> Maybe this will be a help to implement "account move at task move".
Sounds promising!
--
Balbir
WARNING: multiple messages have this Message-ID (diff)
From: Balbir Singh <balbir@linux.vnet.ibm.com>
To: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: "linux-mm@kvack.org" <linux-mm@kvack.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"menage@google.com" <menage@google.com>,
"nishimura@mxp.nes.nec.co.jp" <nishimura@mxp.nes.nec.co.jp>
Subject: Re: [RFC][PATCH 0/6] memcg updates (05/Nov)
Date: Thu, 06 Nov 2008 12:24:11 +0530 [thread overview]
Message-ID: <49129493.9070103@linux.vnet.ibm.com> (raw)
In-Reply-To: <20081105171637.1b393333.kamezawa.hiroyu@jp.fujitsu.com>
KAMEZAWA Hiroyuki wrote:
> Weekly (RFC) update for memcg.
>
> This set includes
>
> 1. change force_empty to do move account rather than forget all
I would like this to be selectable, please. We don't want to break behaviour and
not everyone would like to pay the cost of movement.
> 2. swap cache handling
> 3. mem+swap controller kconfig
> 4. swap_cgroup for rememver swap account information
> 5. mem+swap controller core
> 6. synchronize memcg's LRU and global LRU.
>
> "1" is already sent, "6" is a newcomer.
> I'd like to push out "2" or "2-5" in the next week (if no bugs.)
>
> after 6, next candidates are
> - dirty_ratio handler
> - account move at task move.
>
> Some more explanation about purpose of "6". (see details in patch itself)
> Now, one of complicated logic in memcg is LRU handling. Because the place of
> lru_head depends on page_cgroup->mem_cgroup pointer, we have to take
> lock as following even under zone->lru_lock.
> ==
> pc = lookup_page_cgroup(page);
> if (!trylock_page_cgroup(pc))
> return -EBUSY;
>
> if (PageCgroupUsed(pc)) {
> struct mem_cgroup_per_zone *mz = page_cgroup_zoneinfo(pc);
> spin_lock_irqsave(&mz->lru_lock, flags);
> ....some operation on LRU.
> spin_unlock_irqrestore(&mz->lru_lock, flags);
> }
> unlock_page_cgroup(pc);
> ==
> Sigh..
>
> After "6", page_cgroup's LRU management can be done independently to some extent.
> == as
> (zone->lru_lock is held here)
> pc = lookup_page_cgroup(page);
> list operation on pc.
> (unlock zone->lru_lock)
> ==
> Maybe good for maintainance and as a bonus, we can make use of isolate_lru_page() when
> doing some racy operation.
>
> isolate_lru_page(page);
> pc = lookup_page_cgroup(page);
> do some jobs.
> putback_lru_page(page);
>
> Maybe this will be a help to implement "account move at task move".
Sounds promising!
--
Balbir
--
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-11-06 6:58 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-11-05 8:16 [RFC][PATCH 0/6] memcg updates (05/Nov) KAMEZAWA Hiroyuki
2008-11-05 8:16 ` KAMEZAWA Hiroyuki
2008-11-05 8:18 ` [RFC][PATCH 1/6] memcg: move all accounts to parent at rmdir() KAMEZAWA Hiroyuki
2008-11-05 8:18 ` KAMEZAWA Hiroyuki
2008-11-05 8:20 ` [RFC][PATCH 2/6] memcg: handle swap cache KAMEZAWA Hiroyuki
2008-11-05 8:20 ` KAMEZAWA Hiroyuki
2008-11-07 8:53 ` Daisuke Nishimura
2008-11-07 8:53 ` Daisuke Nishimura
2008-11-07 9:13 ` KAMEZAWA Hiroyuki
2008-11-07 9:13 ` KAMEZAWA Hiroyuki
2008-11-05 8:20 ` [RFC][PATCH 3/6] memcg : mem+swap controller kconfig KAMEZAWA Hiroyuki
2008-11-05 8:20 ` KAMEZAWA Hiroyuki
2008-11-06 11:07 ` Daisuke Nishimura
2008-11-06 11:07 ` Daisuke Nishimura
2008-11-05 8:21 ` [RFC][PATCH 4/6] memcg : swap cgroup KAMEZAWA Hiroyuki
2008-11-05 8:21 ` KAMEZAWA Hiroyuki
2008-11-06 11:25 ` Daisuke Nishimura
2008-11-06 11:25 ` Daisuke Nishimura
2008-11-06 12:44 ` KAMEZAWA Hiroyuki
2008-11-06 12:44 ` KAMEZAWA Hiroyuki
2008-11-07 1:19 ` Daisuke Nishimura
2008-11-07 1:19 ` Daisuke Nishimura
2008-11-05 8:23 ` [RFC][PATCH 5/6] memcg: mem+swap controller KAMEZAWA Hiroyuki
2008-11-05 8:23 ` KAMEZAWA Hiroyuki
2008-11-07 9:02 ` Daisuke Nishimura
2008-11-07 9:02 ` Daisuke Nishimura
2008-11-07 9:19 ` KAMEZAWA Hiroyuki
2008-11-07 9:19 ` KAMEZAWA Hiroyuki
2008-11-07 13:30 ` Daisuke Nishimura
2008-11-07 13:30 ` Daisuke Nishimura
2008-11-07 13:21 ` Daisuke Nishimura
2008-11-07 13:21 ` Daisuke Nishimura
2008-11-10 4:30 ` Daisuke Nishimura
2008-11-10 4:30 ` Daisuke Nishimura
2008-11-10 7:03 ` KAMEZAWA Hiroyuki
2008-11-10 7:03 ` KAMEZAWA Hiroyuki
2008-11-05 8:24 ` [RFC][PATCH 6/6] memcg: synchronized LRU KAMEZAWA Hiroyuki
2008-11-05 8:24 ` KAMEZAWA Hiroyuki
2008-11-06 6:54 ` Balbir Singh [this message]
2008-11-06 6:54 ` [RFC][PATCH 0/6] memcg updates (05/Nov) Balbir Singh
2008-11-06 7:03 ` KAMEZAWA Hiroyuki
2008-11-06 7:03 ` KAMEZAWA Hiroyuki
2008-11-06 10:41 ` [RFC][PATCH 7/6] memcg: add atribute (for change bahavior of rmdir) KAMEZAWA Hiroyuki
2008-11-06 10:41 ` KAMEZAWA Hiroyuki
2008-11-06 11:59 ` Hugh Dickins
2008-11-06 11:59 ` Hugh Dickins
2008-11-06 12:47 ` [RFC][PATCH 7/6] memcg: add atribute (for change bahavior ofrmdir) KAMEZAWA Hiroyuki
2008-11-06 12:47 ` KAMEZAWA Hiroyuki
2008-11-06 13:46 ` [RFC][PATCH 7/6] memcg: add atribute (for change bahavior of rmdir) Balbir Singh
2008-11-06 13:46 ` Balbir Singh
2008-11-06 14:30 ` [RFC][PATCH 7/6] memcg: add atribute (for change bahavior ofrmdir) KAMEZAWA Hiroyuki
2008-11-06 14:30 ` KAMEZAWA Hiroyuki
2008-11-07 1:12 ` KAMEZAWA Hiroyuki
2008-11-07 1:12 ` 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=49129493.9070103@linux.vnet.ibm.com \
--to=balbir@linux.vnet.ibm.com \
--cc=kamezawa.hiroyu@jp.fujitsu.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.