From: Glauber Costa <glommer@parallels.com>
To: Christoph Lameter <cl@linux.com>
Cc: linux-kernel@vger.kernel.org, cgroups@vger.kernel.org,
linux-mm@kvack.org, kamezawa.hiroyu@jp.fujitsu.com,
Tejun Heo <tj@kernel.org>, Li Zefan <lizefan@huawei.com>,
Greg Thelen <gthelen@google.com>,
Suleiman Souhlal <suleiman@google.com>,
Michal Hocko <mhocko@suse.cz>,
Johannes Weiner <hannes@cmpxchg.org>,
devel@openvz.org, David Rientjes <rientjes@google.com>,
Pekka Enberg <penberg@cs.helsinki.fi>
Subject: Re: [PATCH v3 13/28] slub: create duplicate cache
Date: Tue, 29 May 2012 19:56:23 +0400 [thread overview]
Message-ID: <4FC4F1A7.2010206@parallels.com> (raw)
In-Reply-To: <alpine.DEB.2.00.1205290932530.4666@router.home>
On 05/29/2012 06:36 PM, Christoph Lameter wrote:
> On Fri, 25 May 2012, Glauber Costa wrote:
>
>> index dacd1fb..4689034 100644
>> --- a/mm/memcontrol.c
>> +++ b/mm/memcontrol.c
>> @@ -467,6 +467,23 @@ struct cg_proto *tcp_proto_cgroup(struct mem_cgroup *memcg)
>> EXPORT_SYMBOL(tcp_proto_cgroup);
>> #endif /* CONFIG_INET */
>>
>> +char *mem_cgroup_cache_name(struct mem_cgroup *memcg, struct kmem_cache *cachep)
>> +{
>> + char *name;
>> + struct dentry *dentry;
>> +
>> + rcu_read_lock();
>> + dentry = rcu_dereference(memcg->css.cgroup->dentry);
>> + rcu_read_unlock();
>> +
>> + BUG_ON(dentry == NULL);
>> +
>> + name = kasprintf(GFP_KERNEL, "%s(%d:%s)",
>> + cachep->name, css_id(&memcg->css), dentry->d_name.name);
>> +
>> + return name;
>> +}
>
> Function allocates a string that is supposed to be disposed of by the
> caller. That needs to be documented and maybe even the name needs to
> reflect that.
Okay, I can change it.
>> --- a/mm/slub.c
>> +++ b/mm/slub.c
>> @@ -4002,6 +4002,38 @@ struct kmem_cache *kmem_cache_create(const char *name, size_t size,
>> }
>> EXPORT_SYMBOL(kmem_cache_create);
>>
>> +#ifdef CONFIG_CGROUP_MEM_RES_CTLR_KMEM
>> +struct kmem_cache *kmem_cache_dup(struct mem_cgroup *memcg,
>> + struct kmem_cache *s)
>> +{
>> + char *name;
>> + struct kmem_cache *new;
>> +
>> + name = mem_cgroup_cache_name(memcg, s);
>> + if (!name)
>> + return NULL;
>> +
>> + new = kmem_cache_create_memcg(memcg, name, s->objsize, s->align,
>> + (s->allocflags& ~SLAB_PANIC), s->ctor);
>
> Hmmm... A full duplicate of the slab cache? We may have many sparsely
> used portions of the per node and per cpu structure as a result.
I've already commented on patch 0, but I will repeat it here. This
approach leads to more fragmentation, yes, but this is exactly to be
less intrusive.
With a full copy, all I need to do is:
1) relay the allocation to the right cache.
2) account for a new page when it is needed.
How does the cache work from inside? I don't care.
Accounting pages seems just crazy to me. If new allocators come in the
future, organizing the pages in a different way, instead of patching it
here and there, we need to totally rewrite this.
If those allocators happen to depend on a specific placement for
performance, then we're destroying this as well too.
>
>> + * prevent it from being deleted. If kmem_cache_destroy() is
>> + * called for the root cache before we call it for a child cache,
>> + * it will be queued for destruction when we finally drop the
>> + * reference on the child cache.
>> + */
>> + if (new) {
>> + down_write(&slub_lock);
>> + s->refcount++;
>> + up_write(&slub_lock);
>> + }
>
> Why do you need to increase the refcount? You made a full copy right?
Yes, but I don't want this copy to go away while we have other caches
around.
So, in the memcg internals, I used a different reference counter, to
avoid messing with this one. I could use that, and leave the original
refcnt alone. Would you prefer this?
--
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/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
WARNING: multiple messages have this Message-ID (diff)
From: Glauber Costa <glommer@parallels.com>
To: Christoph Lameter <cl@linux.com>
Cc: <linux-kernel@vger.kernel.org>, <cgroups@vger.kernel.org>,
<linux-mm@kvack.org>, <kamezawa.hiroyu@jp.fujitsu.com>,
Tejun Heo <tj@kernel.org>, Li Zefan <lizefan@huawei.com>,
Greg Thelen <gthelen@google.com>,
Suleiman Souhlal <suleiman@google.com>,
Michal Hocko <mhocko@suse.cz>,
Johannes Weiner <hannes@cmpxchg.org>, <devel@openvz.org>,
David Rientjes <rientjes@google.com>,
Pekka Enberg <penberg@cs.helsinki.fi>
Subject: Re: [PATCH v3 13/28] slub: create duplicate cache
Date: Tue, 29 May 2012 19:56:23 +0400 [thread overview]
Message-ID: <4FC4F1A7.2010206@parallels.com> (raw)
In-Reply-To: <alpine.DEB.2.00.1205290932530.4666@router.home>
On 05/29/2012 06:36 PM, Christoph Lameter wrote:
> On Fri, 25 May 2012, Glauber Costa wrote:
>
>> index dacd1fb..4689034 100644
>> --- a/mm/memcontrol.c
>> +++ b/mm/memcontrol.c
>> @@ -467,6 +467,23 @@ struct cg_proto *tcp_proto_cgroup(struct mem_cgroup *memcg)
>> EXPORT_SYMBOL(tcp_proto_cgroup);
>> #endif /* CONFIG_INET */
>>
>> +char *mem_cgroup_cache_name(struct mem_cgroup *memcg, struct kmem_cache *cachep)
>> +{
>> + char *name;
>> + struct dentry *dentry;
>> +
>> + rcu_read_lock();
>> + dentry = rcu_dereference(memcg->css.cgroup->dentry);
>> + rcu_read_unlock();
>> +
>> + BUG_ON(dentry == NULL);
>> +
>> + name = kasprintf(GFP_KERNEL, "%s(%d:%s)",
>> + cachep->name, css_id(&memcg->css), dentry->d_name.name);
>> +
>> + return name;
>> +}
>
> Function allocates a string that is supposed to be disposed of by the
> caller. That needs to be documented and maybe even the name needs to
> reflect that.
Okay, I can change it.
>> --- a/mm/slub.c
>> +++ b/mm/slub.c
>> @@ -4002,6 +4002,38 @@ struct kmem_cache *kmem_cache_create(const char *name, size_t size,
>> }
>> EXPORT_SYMBOL(kmem_cache_create);
>>
>> +#ifdef CONFIG_CGROUP_MEM_RES_CTLR_KMEM
>> +struct kmem_cache *kmem_cache_dup(struct mem_cgroup *memcg,
>> + struct kmem_cache *s)
>> +{
>> + char *name;
>> + struct kmem_cache *new;
>> +
>> + name = mem_cgroup_cache_name(memcg, s);
>> + if (!name)
>> + return NULL;
>> +
>> + new = kmem_cache_create_memcg(memcg, name, s->objsize, s->align,
>> + (s->allocflags& ~SLAB_PANIC), s->ctor);
>
> Hmmm... A full duplicate of the slab cache? We may have many sparsely
> used portions of the per node and per cpu structure as a result.
I've already commented on patch 0, but I will repeat it here. This
approach leads to more fragmentation, yes, but this is exactly to be
less intrusive.
With a full copy, all I need to do is:
1) relay the allocation to the right cache.
2) account for a new page when it is needed.
How does the cache work from inside? I don't care.
Accounting pages seems just crazy to me. If new allocators come in the
future, organizing the pages in a different way, instead of patching it
here and there, we need to totally rewrite this.
If those allocators happen to depend on a specific placement for
performance, then we're destroying this as well too.
>
>> + * prevent it from being deleted. If kmem_cache_destroy() is
>> + * called for the root cache before we call it for a child cache,
>> + * it will be queued for destruction when we finally drop the
>> + * reference on the child cache.
>> + */
>> + if (new) {
>> + down_write(&slub_lock);
>> + s->refcount++;
>> + up_write(&slub_lock);
>> + }
>
> Why do you need to increase the refcount? You made a full copy right?
Yes, but I don't want this copy to go away while we have other caches
around.
So, in the memcg internals, I used a different reference counter, to
avoid messing with this one. I could use that, and leave the original
refcnt alone. Would you prefer this?
next prev parent reply other threads:[~2012-05-29 15:56 UTC|newest]
Thread overview: 243+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-05-25 13:03 [PATCH v3 00/28] kmem limitation for memcg Glauber Costa
2012-05-25 13:03 ` Glauber Costa
2012-05-25 13:03 ` Glauber Costa
[not found] ` <1337951028-3427-1-git-send-email-glommer-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
2012-05-25 13:03 ` [PATCH v3 01/28] slab: move FULL state transition to an initcall Glauber Costa
2012-05-25 13:03 ` Glauber Costa
2012-05-25 13:03 ` Glauber Costa
2012-05-25 13:03 ` [PATCH v3 02/28] memcg: Always free struct memcg through schedule_work() Glauber Costa
2012-05-25 13:03 ` Glauber Costa
2012-05-25 13:03 ` Glauber Costa
2012-05-25 13:03 ` [PATCH v3 03/28] slab: rename gfpflags to allocflags Glauber Costa
2012-05-25 13:03 ` Glauber Costa
2012-05-25 13:03 ` Glauber Costa
2012-05-25 13:03 ` [PATCH v3 04/28] memcg: Make it possible to use the stock for more than one page Glauber Costa
2012-05-25 13:03 ` Glauber Costa
2012-05-25 13:03 ` Glauber Costa
2012-05-25 13:03 ` [PATCH v3 05/28] memcg: Reclaim when more than one page needed Glauber Costa
2012-05-25 13:03 ` Glauber Costa
2012-05-25 13:03 ` Glauber Costa
2012-05-29 14:19 ` Christoph Lameter
2012-05-29 14:19 ` Christoph Lameter
2012-05-29 14:20 ` Christoph Lameter
2012-05-29 14:20 ` Christoph Lameter
[not found] ` <alpine.DEB.2.00.1205290919130.4666-sBS69tsa9Uj/9pzu0YdTqQ@public.gmane.org>
2012-05-29 15:45 ` Glauber Costa
2012-05-29 15:45 ` Glauber Costa
2012-05-29 15:45 ` Glauber Costa
2012-05-25 13:03 ` [PATCH v3 06/28] slab: use obj_size field of struct kmem_cache when not debugging Glauber Costa
2012-05-25 13:03 ` Glauber Costa
2012-05-25 13:03 ` Glauber Costa
2012-05-25 13:03 ` [PATCH v3 07/28] memcg: change defines to an enum Glauber Costa
2012-05-25 13:03 ` Glauber Costa
2012-05-25 13:03 ` Glauber Costa
2012-05-25 13:03 ` [PATCH v3 08/28] res_counter: don't force return value checking in res_counter_charge_nofail Glauber Costa
2012-05-25 13:03 ` Glauber Costa
2012-05-25 13:03 ` Glauber Costa
2012-05-25 13:03 ` [PATCH v3 09/28] kmem slab accounting basic infrastructure Glauber Costa
2012-05-25 13:03 ` Glauber Costa
2012-05-25 13:03 ` Glauber Costa
2012-05-25 13:03 ` [PATCH v3 10/28] slab/slub: struct memcg_params Glauber Costa
2012-05-25 13:03 ` Glauber Costa
2012-05-25 13:03 ` Glauber Costa
2012-05-25 13:03 ` [PATCH v3 11/28] slub: consider a memcg parameter in kmem_create_cache Glauber Costa
2012-05-25 13:03 ` Glauber Costa
2012-05-25 13:03 ` Glauber Costa
2012-05-25 13:03 ` [PATCH v3 12/28] slab: pass memcg parameter to kmem_cache_create Glauber Costa
2012-05-25 13:03 ` Glauber Costa
2012-05-25 13:03 ` Glauber Costa
[not found] ` <1337951028-3427-13-git-send-email-glommer-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
2012-05-29 14:27 ` Christoph Lameter
2012-05-29 14:27 ` Christoph Lameter
2012-05-29 14:27 ` Christoph Lameter
[not found] ` <alpine.DEB.2.00.1205290922340.4666-sBS69tsa9Uj/9pzu0YdTqQ@public.gmane.org>
2012-05-29 15:50 ` Glauber Costa
2012-05-29 15:50 ` Glauber Costa
2012-05-29 15:50 ` Glauber Costa
2012-05-29 16:33 ` Christoph Lameter
2012-05-29 16:33 ` Christoph Lameter
[not found] ` <alpine.DEB.2.00.1205291131590.6723-sBS69tsa9Uj/9pzu0YdTqQ@public.gmane.org>
2012-05-29 16:36 ` Glauber Costa
2012-05-29 16:36 ` Glauber Costa
2012-05-29 16:36 ` Glauber Costa
[not found] ` <4FC4FAF6.8060900-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
2012-05-29 16:52 ` Christoph Lameter
2012-05-29 16:52 ` Christoph Lameter
2012-05-29 16:52 ` Christoph Lameter
[not found] ` <alpine.DEB.2.00.1205291149280.8406-sBS69tsa9Uj/9pzu0YdTqQ@public.gmane.org>
2012-05-29 16:59 ` Glauber Costa
2012-05-29 16:59 ` Glauber Costa
2012-05-29 16:59 ` Glauber Costa
2012-05-30 11:01 ` Frederic Weisbecker
2012-05-30 11:01 ` Frederic Weisbecker
2012-05-30 11:01 ` Frederic Weisbecker
2012-05-25 13:03 ` [PATCH v3 13/28] slub: create duplicate cache Glauber Costa
2012-05-25 13:03 ` Glauber Costa
2012-05-25 13:03 ` Glauber Costa
[not found] ` <1337951028-3427-14-git-send-email-glommer-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
2012-05-29 14:36 ` Christoph Lameter
2012-05-29 14:36 ` Christoph Lameter
2012-05-29 14:36 ` Christoph Lameter
2012-05-29 15:56 ` Glauber Costa [this message]
2012-05-29 15:56 ` Glauber Costa
[not found] ` <4FC4F1A7.2010206-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
2012-05-29 16:05 ` Christoph Lameter
2012-05-29 16:05 ` Christoph Lameter
2012-05-29 16:05 ` Christoph Lameter
2012-05-29 17:05 ` Glauber Costa
2012-05-29 17:05 ` Glauber Costa
[not found] ` <4FC501E9.60607-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
2012-05-29 17:25 ` Christoph Lameter
2012-05-29 17:25 ` Christoph Lameter
2012-05-29 17:25 ` Christoph Lameter
[not found] ` <alpine.DEB.2.00.1205291222360.8495-sBS69tsa9Uj/9pzu0YdTqQ@public.gmane.org>
2012-05-29 17:27 ` Glauber Costa
2012-05-29 17:27 ` Glauber Costa
2012-05-29 17:27 ` Glauber Costa
2012-05-29 19:26 ` Christoph Lameter
2012-05-29 19:26 ` Christoph Lameter
[not found] ` <alpine.DEB.2.00.1205291424130.8495-sBS69tsa9Uj/9pzu0YdTqQ@public.gmane.org>
2012-05-29 19:40 ` Glauber Costa
2012-05-29 19:40 ` Glauber Costa
2012-05-29 19:40 ` Glauber Costa
[not found] ` <4FC52612.5060006-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
2012-05-29 19:55 ` Christoph Lameter
2012-05-29 19:55 ` Christoph Lameter
2012-05-29 19:55 ` Christoph Lameter
[not found] ` <alpine.DEB.2.00.1205291454030.2504-sBS69tsa9Uj/9pzu0YdTqQ@public.gmane.org>
2012-05-29 20:08 ` Glauber Costa
2012-05-29 20:08 ` Glauber Costa
2012-05-29 20:08 ` Glauber Costa
2012-05-29 20:21 ` Christoph Lameter
2012-05-29 20:21 ` Christoph Lameter
2012-05-29 20:25 ` Glauber Costa
2012-05-29 20:25 ` Glauber Costa
[not found] ` <4FC530C0.30509-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
2012-05-30 1:29 ` Tejun Heo
2012-05-30 1:29 ` Tejun Heo
2012-05-30 1:29 ` Tejun Heo
[not found] ` <20120530012955.GA4854-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2012-05-30 7:28 ` [Devel] " James Bottomley
2012-05-30 7:28 ` James Bottomley
2012-05-30 7:28 ` James Bottomley
2012-05-30 7:54 ` Glauber Costa
2012-05-30 7:54 ` Glauber Costa
[not found] ` <4FC5D228.2070100-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
2012-05-30 8:02 ` Tejun Heo
2012-05-30 8:02 ` Tejun Heo
2012-05-30 8:02 ` Tejun Heo
2012-05-30 15:37 ` Christoph Lameter
2012-05-30 15:37 ` Christoph Lameter
2012-05-29 20:57 ` Suleiman Souhlal
2012-05-29 20:57 ` Suleiman Souhlal
2012-05-25 13:03 ` [PATCH v3 14/28] slab: " Glauber Costa
2012-05-25 13:03 ` Glauber Costa
2012-05-25 13:03 ` Glauber Costa
2012-05-25 13:03 ` [PATCH v3 15/28] slub: always get the cache from its page in kfree Glauber Costa
2012-05-25 13:03 ` Glauber Costa
2012-05-25 13:03 ` Glauber Costa
[not found] ` <1337951028-3427-16-git-send-email-glommer-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
2012-05-29 14:42 ` Christoph Lameter
2012-05-29 14:42 ` Christoph Lameter
2012-05-29 14:42 ` Christoph Lameter
[not found] ` <alpine.DEB.2.00.1205290939540.4666-sBS69tsa9Uj/9pzu0YdTqQ@public.gmane.org>
2012-05-29 15:59 ` Glauber Costa
2012-05-29 15:59 ` Glauber Costa
2012-05-29 15:59 ` Glauber Costa
2012-05-25 13:03 ` [PATCH v3 16/28] memcg: kmem controller charge/uncharge infrastructure Glauber Costa
2012-05-25 13:03 ` Glauber Costa
2012-05-25 13:03 ` Glauber Costa
2012-05-29 14:47 ` Christoph Lameter
2012-05-29 14:47 ` Christoph Lameter
2012-05-29 16:00 ` Glauber Costa
2012-05-29 16:00 ` Glauber Costa
[not found] ` <1337951028-3427-17-git-send-email-glommer-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
2012-05-30 12:17 ` Frederic Weisbecker
2012-05-30 12:17 ` Frederic Weisbecker
2012-05-30 12:17 ` Frederic Weisbecker
[not found] ` <20120530121706.GB25094-oHC15RC7JGTpAmv0O++HtFaTQe2KTcn/@public.gmane.org>
2012-05-30 12:26 ` Glauber Costa
2012-05-30 12:26 ` Glauber Costa
2012-05-30 12:26 ` Glauber Costa
2012-05-30 12:34 ` Frederic Weisbecker
2012-05-30 12:34 ` Frederic Weisbecker
2012-05-30 12:34 ` Frederic Weisbecker
[not found] ` <20120530123406.GC25094-oHC15RC7JGTpAmv0O++HtFaTQe2KTcn/@public.gmane.org>
2012-05-30 12:38 ` Glauber Costa
2012-05-30 12:38 ` Glauber Costa
2012-05-30 12:38 ` Glauber Costa
[not found] ` <4FC614CF.5000906-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
2012-05-30 13:11 ` Frederic Weisbecker
2012-05-30 13:11 ` Frederic Weisbecker
2012-05-30 13:11 ` Frederic Weisbecker
[not found] ` <20120530131059.GE25094-oHC15RC7JGTpAmv0O++HtFaTQe2KTcn/@public.gmane.org>
2012-05-30 13:09 ` Glauber Costa
2012-05-30 13:09 ` Glauber Costa
2012-05-30 13:09 ` Glauber Costa
2012-05-30 13:04 ` Frederic Weisbecker
2012-05-30 13:04 ` Frederic Weisbecker
2012-05-30 13:04 ` Frederic Weisbecker
2012-05-30 13:06 ` Glauber Costa
2012-05-30 13:06 ` Glauber Costa
2012-05-30 13:37 ` Frederic Weisbecker
2012-05-30 13:37 ` Frederic Weisbecker
2012-05-30 13:37 ` Glauber Costa
2012-05-30 13:37 ` Glauber Costa
2012-05-30 13:53 ` Frederic Weisbecker
2012-05-30 13:53 ` Frederic Weisbecker
2012-05-30 13:55 ` Glauber Costa
2012-05-30 13:55 ` Glauber Costa
[not found] ` <4FC626DA.3030408-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
2012-05-30 15:33 ` Frederic Weisbecker
2012-05-30 15:33 ` Frederic Weisbecker
2012-05-30 15:33 ` Frederic Weisbecker
[not found] ` <20120530153256.GA27008-oHC15RC7JGTpAmv0O++HtFaTQe2KTcn/@public.gmane.org>
2012-05-30 16:16 ` Glauber Costa
2012-05-30 16:16 ` Glauber Costa
2012-05-30 16:16 ` Glauber Costa
2012-05-25 13:03 ` [PATCH v3 17/28] skip memcg kmem allocations in specified code regions Glauber Costa
2012-05-25 13:03 ` Glauber Costa
2012-05-25 13:03 ` Glauber Costa
2012-05-25 13:03 ` [PATCH v3 18/28] slub: charge allocation to a memcg Glauber Costa
2012-05-25 13:03 ` Glauber Costa
2012-05-25 13:03 ` Glauber Costa
[not found] ` <1337951028-3427-19-git-send-email-glommer-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
2012-05-29 14:51 ` Christoph Lameter
2012-05-29 14:51 ` Christoph Lameter
2012-05-29 14:51 ` Christoph Lameter
[not found] ` <alpine.DEB.2.00.1205290948250.4666-sBS69tsa9Uj/9pzu0YdTqQ@public.gmane.org>
2012-05-29 16:06 ` Glauber Costa
2012-05-29 16:06 ` Glauber Costa
2012-05-29 16:06 ` Glauber Costa
2012-05-25 13:03 ` [PATCH v3 19/28] slab: per-memcg accounting of slab caches Glauber Costa
2012-05-25 13:03 ` Glauber Costa
2012-05-25 13:03 ` Glauber Costa
[not found] ` <1337951028-3427-20-git-send-email-glommer-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
2012-05-29 14:52 ` Christoph Lameter
2012-05-29 14:52 ` Christoph Lameter
2012-05-29 14:52 ` Christoph Lameter
[not found] ` <alpine.DEB.2.00.1205290951520.4666-sBS69tsa9Uj/9pzu0YdTqQ@public.gmane.org>
2012-05-29 16:07 ` Glauber Costa
2012-05-29 16:07 ` Glauber Costa
2012-05-29 16:07 ` Glauber Costa
[not found] ` <4FC4F42D.6060601-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
2012-05-29 16:13 ` Glauber Costa
2012-05-29 16:13 ` Glauber Costa
2012-05-29 16:13 ` Glauber Costa
2012-05-25 13:03 ` [PATCH v3 20/28] memcg: disable kmem code when not in use Glauber Costa
2012-05-25 13:03 ` Glauber Costa
2012-05-25 13:03 ` Glauber Costa
2012-05-25 13:03 ` [PATCH v3 21/28] memcg: destroy memcg caches Glauber Costa
2012-05-25 13:03 ` Glauber Costa
2012-05-25 13:03 ` Glauber Costa
2012-05-25 13:03 ` [PATCH v3 22/28] memcg/slub: shrink dead caches Glauber Costa
2012-05-25 13:03 ` Glauber Costa
2012-05-25 13:03 ` Glauber Costa
2012-05-25 13:03 ` [PATCH v3 23/28] slab: Track all the memcg children of a kmem_cache Glauber Costa
2012-05-25 13:03 ` Glauber Costa
2012-05-25 13:03 ` Glauber Costa
2012-05-25 13:03 ` [PATCH v3 24/28] memcg: Per-memcg memory.kmem.slabinfo file Glauber Costa
2012-05-25 13:03 ` Glauber Costa
2012-05-25 13:03 ` Glauber Costa
2012-05-25 13:03 ` [PATCH v3 25/28] slub: create slabinfo file for memcg Glauber Costa
2012-05-25 13:03 ` Glauber Costa
2012-05-25 13:03 ` Glauber Costa
2012-05-25 13:03 ` [PATCH v3 26/28] slub: track all children of a kmem cache Glauber Costa
2012-05-25 13:03 ` Glauber Costa
2012-05-25 13:03 ` Glauber Costa
2012-05-25 13:03 ` [PATCH v3 27/28] memcg: propagate kmem limiting information to children Glauber Costa
2012-05-25 13:03 ` Glauber Costa
2012-05-25 13:03 ` [PATCH v3 28/28] Documentation: add documentation for slab tracker for memcg Glauber Costa
2012-05-25 13:03 ` Glauber Costa
2012-05-25 13:34 ` [PATCH v3 00/28] kmem limitation " Michal Hocko
2012-05-25 13:34 ` Michal Hocko
2012-05-25 14:34 ` Christoph Lameter
2012-05-25 14:34 ` Christoph Lameter
2012-05-28 8:32 ` Glauber Costa
2012-05-28 8:32 ` Glauber Costa
2012-05-29 15:07 ` Christoph Lameter
2012-05-29 15:07 ` Christoph Lameter
[not found] ` <alpine.DEB.2.00.1205290955270.4666-sBS69tsa9Uj/9pzu0YdTqQ@public.gmane.org>
2012-05-29 15:44 ` Glauber Costa
2012-05-29 15:44 ` Glauber Costa
2012-05-29 15:44 ` Glauber Costa
[not found] ` <4FC4EEF6.2050204-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
2012-05-29 16:01 ` Christoph Lameter
2012-05-29 16:01 ` Christoph Lameter
2012-05-29 16:01 ` Christoph Lameter
2012-06-07 10:26 ` Frederic Weisbecker
2012-06-07 10:26 ` Frederic Weisbecker
2012-06-07 10:53 ` Glauber Costa
2012-06-07 10:53 ` Glauber Costa
2012-06-07 10:53 ` Glauber Costa
2012-06-07 14:00 ` Frederic Weisbecker
2012-06-07 14:00 ` Frederic Weisbecker
2012-06-14 2:24 ` Kamezawa Hiroyuki
2012-06-14 2:24 ` 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=4FC4F1A7.2010206@parallels.com \
--to=glommer@parallels.com \
--cc=cgroups@vger.kernel.org \
--cc=cl@linux.com \
--cc=devel@openvz.org \
--cc=gthelen@google.com \
--cc=hannes@cmpxchg.org \
--cc=kamezawa.hiroyu@jp.fujitsu.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=lizefan@huawei.com \
--cc=mhocko@suse.cz \
--cc=penberg@cs.helsinki.fi \
--cc=rientjes@google.com \
--cc=suleiman@google.com \
--cc=tj@kernel.org \
/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.