linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Balbir Singh <balbir@linux.vnet.ibm.com>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: kamezawa.hiroyu@jp.fujitsu.com, linux-mm@kvack.org,
	linux-kernel@vger.kernel.org, nishimura@mxp.nes.nec.co.jp,
	menage@google.com
Subject: Re: [RFC][PATCH 1/6] memcg: free all at rmdir
Date: Thu, 13 Nov 2008 06:47:31 +0530	[thread overview]
Message-ID: <491B802B.2060401@linux.vnet.ibm.com> (raw)
In-Reply-To: <20081112170400.bfb7211c.akpm@linux-foundation.org>

Andrew Morton wrote:
> On Thu, 13 Nov 2008 06:18:56 +0530
> Balbir Singh <balbir@linux.vnet.ibm.com> wrote:
> 
>> Andrew Morton wrote:
>>> On Thu, 13 Nov 2008 05:53:49 +0530
>>> Balbir Singh <balbir@linux.vnet.ibm.com> wrote:
>>>
>>>> Andrew Morton wrote:
>>>>> On Wed, 12 Nov 2008 12:26:56 +0900
>>>>> KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> wrote:
>>>>>
>>>>>> +5.1 on_rmdir
>>>>>> +set behavior of memcg at rmdir (Removing cgroup) default is "drop".
>>>>>> +
>>>>>> +5.1.1 drop
>>>>>> +       #echo on_rmdir drop > memory.attribute
>>>>>> +       This is default. All pages on the memcg will be freed.
>>>>>> +       If pages are locked or too busy, they will be moved up to the parent.
>>>>>> +       Useful when you want to drop (large) page caches used in this memcg.
>>>>>> +       But some of in-use page cache can be dropped by this.
>>>>>> +
>>>>>> +5.1.2 keep
>>>>>> +       #echo on_rmdir keep > memory.attribute
>>>>>> +       All pages on the memcg will be moved to its parent.
>>>>>> +       Useful when you don't want to drop page caches used in this memcg.
>>>>>> +       You can keep page caches from some library or DB accessed by this
>>>>>> +       memcg on memory.
>>>>> Would it not be more useful to implement a per-memcg version of
>>>>> /proc/sys/vm/drop_caches?  (One without drop_caches' locking bug,
>>>>> hopefully).
>>>>>
>>>>> If we do this then we can make the above "keep" behaviour non-optional,
>>>>> and the operator gets to choose whether or not to drop the caches
>>>>> before doing the rmdir.
>>>>>
>>>>> Plus, we get a new per-memcg drop_caches capability.  And it's a nicer
>>>>> interface, and it doesn't have the obvious races which on_rmdir has,
>>>>> etc.
>>>>>
>>>> Andrew, I suspect that will not be easy, since we don't track address spaces
>>>> that belong to a particular memcg. If page cache ends up being shared across
>>>> memcg's, dropping them would impact both mem cgroups.
>>>>
>>> walk the LRUs?
>> We do that for the force_empty() interface we have. Although we don't
>> differentiate between cache and RSS at the moment.
> 
> so..  what's wrong with using that (possibly with some
> generalisation/enhancement)?
> 

I am not against enhancing force_empty to drop caches, in fact it would be
useful. I've been testing swappiness of late in mainline and looking at patches
posted for memcg swappiness and the results have not been very good. I'm trying
to see if my testing is valid. A drop_caches interface will help me
debug/understand the problem better and even provide an alternative when I need
a brute force approach.

> btw, mem_cgroup_force_empty_list() uses PageLRU() outside ->lru_lock. 
> That's racy, although afaict this race will only cause an accounting
> error.
> 
> Or maybe not.  What happens if
> __mem_cgroup_uncharge_common()->__mem_cgroup_remove_list() is passed a
> page which isn't on an LRU any more?  boom?
> 

IIRC, Kamezawa has been working on redoing force_empty interface. We are
reworking its internals as well.


-- 
	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>

  reply	other threads:[~2008-11-13  1:16 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-11-12  3:26 [RFC][PATCH 0/6] memcg updates (12/Nov/2008) KAMEZAWA Hiroyuki
2008-11-12  3:26 ` [RFC][PATCH 1/6] memcg: free all at rmdir KAMEZAWA Hiroyuki
2008-11-12  6:07   ` KAMEZAWA Hiroyuki
2008-11-13  0:07   ` Andrew Morton
2008-11-13  0:23     ` Balbir Singh
2008-11-13  0:46       ` Andrew Morton
2008-11-13  0:48         ` Balbir Singh
2008-11-13  1:04           ` Andrew Morton
2008-11-13  1:17             ` Balbir Singh [this message]
2008-11-13  2:30               ` KAMEZAWA Hiroyuki
2008-11-13  1:13     ` KAMEZAWA Hiroyuki
2008-11-13  1:20       ` Balbir Singh
2008-11-13  1:27         ` KAMEZAWA Hiroyuki
2008-11-13  2:49     ` KAMEZAWA Hiroyuki
2008-11-13  3:14       ` Balbir Singh
2008-11-13  3:22         ` KAMEZAWA Hiroyuki
2008-11-13  3:27           ` Balbir Singh
2008-11-13  3:38             ` KAMEZAWA Hiroyuki
2008-11-12  3:27 ` [RFC][PATCH 2/6] memcg: account swapcache KAMEZAWA Hiroyuki
2008-11-12  3:28 ` [RFC][PATCH 3/6] memcg: mem+swap controller kconfig KAMEZAWA Hiroyuki
2008-11-12  3:29 ` [RFC][PATCH 4/6] memcg: swap cgroup for remembering account KAMEZAWA Hiroyuki
2008-11-12  4:17   ` Daisuke Nishimura
2008-11-12  4:22     ` KAMEZAWA Hiroyuki
2008-11-12  3:30 ` [RFC][PATCH 5/6] memcg: mem+swap controller KAMEZAWA Hiroyuki
2008-11-12  3:32 ` [RFC][PATCH 6/6] memcg: synchronized LRU KAMEZAWA Hiroyuki
2008-11-12  3:33 ` [RFC][PATCH 0/6] memcg updates (12/Nov/2008) KAMEZAWA Hiroyuki
2008-11-12  4:00 ` 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=491B802B.2060401@linux.vnet.ibm.com \
    --to=balbir@linux.vnet.ibm.com \
    --cc=akpm@linux-foundation.org \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox