All of lore.kernel.org
 help / color / mirror / Atom feed
From: Glauber Costa <glommer-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
To: Michal Hocko <mhocko-AlSwsSmVLrQ@public.gmane.org>
Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-mm-Bw31MaZKKs3YtjvyW6yDsg@public.gmane.org,
	Andrew Morton
	<akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>,
	Mel Gorman <mgorman-l3A5Bk7waGM@public.gmane.org>,
	Suleiman Souhlal
	<suleiman-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>,
	Tejun Heo <tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
	cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	kamezawa.hiroyu-+CUm20s59erQFUHtdCDX3A@public.gmane.org,
	Johannes Weiner <hannes-druUgvl0LCNAfugRpC6u6w@public.gmane.org>,
	Greg Thelen <gthelen-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>,
	devel-GEFAQzZX7r8dnm+yROfE0A@public.gmane.org,
	Frederic Weisbecker
	<fweisbec-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Subject: Re: [PATCH v4 04/14] kmem accounting basic infrastructure
Date: Fri, 12 Oct 2012 11:36:38 +0400	[thread overview]
Message-ID: <5077C886.2030609@parallels.com> (raw)
In-Reply-To: <20121011101119.GB29295-2MMpYkNvuYDjFM9bn6wA6Q@public.gmane.org>

On 10/11/2012 02:11 PM, Michal Hocko wrote:
> On Mon 08-10-12 14:06:10, Glauber Costa wrote:
>> This patch adds the basic infrastructure for the accounting of the slab
>> caches. To control that, the following files are created:
>>
>>  * memory.kmem.usage_in_bytes
>>  * memory.kmem.limit_in_bytes
>>  * memory.kmem.failcnt
>>  * memory.kmem.max_usage_in_bytes
>>
>> They have the same meaning of their user memory counterparts. They
>> reflect the state of the "kmem" res_counter.
>>
>> Per cgroup slab memory accounting is not enabled until a limit is set
> 
> s/slab/kmem/ right?
> 
right.

>> +static int memcg_update_kmem_limit(struct cgroup *cont, u64 val)
>> +{
>> +	int ret = -EINVAL;
>> +#ifdef CONFIG_MEMCG_KMEM
>> +	struct mem_cgroup *memcg = mem_cgroup_from_cont(cont);
>> +	/*
>> +	 * For simplicity, we won't allow this to be disabled.  It also can't
>> +	 * be changed if the cgroup has children already, or if tasks had
>> +	 * already joined.
>> +	 *
>> +	 * If tasks join before we set the limit, a person looking at
>> +	 * kmem.usage_in_bytes will have no way to determine when it took
>> +	 * place, which makes the value quite meaningless.
>> +	 *
>> +	 * After it first became limited, changes in the value of the limit are
>> +	 * of course permitted.
>> +	 *
>> +	 * Taking the cgroup_lock is really offensive, but it is so far the only
>> +	 * way to guarantee that no children will appear. There are plenty of
>> +	 * other offenders, and they should all go away. Fine grained locking
>> +	 * is probably the way to go here. When we are fully hierarchical, we
>> +	 * can also get rid of the use_hierarchy check.
>> +	 */
>> +	cgroup_lock();
>> +	mutex_lock(&set_limit_mutex);
>> +	if (!memcg->kmem_accounted && val != RESOURCE_MAX) {
> 
> Just a nit but wouldn't memcg_kmem_is_accounted(memcg) be better than
> directly checking kmem_accounted?
> Besides that I am not sure I fully understand RESOURCE_MAX test. Say I
> want to have kmem accounting for monitoring so I do 
> echo -1 > memory.kmem.limit_in_bytes
> 
> so you set the value but do not activate it. Isn't this just a reminder
> from the time when the accounting could be deactivated?
> 

No, not at all.

I see you have talked about that in other e-mails, (I was on sick leave
yesterday), so let me consolidate it all here:

What we discussed before, regarding to echo -1 > ... was around the
disable code, something that we no longer allow. So now, if you will
echo -1 to that file *after* it is limited, you get in track only mode.

But for you to start that, you absolutely have to write something
different than -1.

Just one example: libcgroup, regardless of how lame we think it is in
this regard, will write to all cgroup files by default when a file is
updated. If you haven't written anything, it will still write the same
value that the file had before.

This means that an already deployed libcg-managed installation will
suddenly enable kmem for every cgroup. Sure this can be fixed in
userspace, but:

1) There is no reason to break it, if we can
2) It is perfectly reasonable to expect that if you write to a file the
same value that was already there, nothing happens.

I'll update the docs to say that you can just write -1 *after* it is
limited, but i believe enabling it has to be a very clear transition,
for sanity's sake.

>> +		if (cgroup_task_count(cont) || (memcg->use_hierarchy &&
>> +						!list_empty(&cont->children))) {
>> +			ret = -EBUSY;
>> +			goto out;
>> +		}
>> +		ret = res_counter_set_limit(&memcg->kmem, val);
> 
> VM_BUG_IN(ret) ?
> There shouldn't be any usage when you enable it or something bad is
> going on.
>
Good point, this is indeed an impossible scenario I was just being
overcautious about.

WARNING: multiple messages have this Message-ID (diff)
From: Glauber Costa <glommer@parallels.com>
To: Michal Hocko <mhocko@suse.cz>
Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	Andrew Morton <akpm@linux-foundation.org>,
	Mel Gorman <mgorman@suse.de>,
	Suleiman Souhlal <suleiman@google.com>, Tejun Heo <tj@kernel.org>,
	cgroups@vger.kernel.org, kamezawa.hiroyu@jp.fujitsu.com,
	Johannes Weiner <hannes@cmpxchg.org>,
	Greg Thelen <gthelen@google.com>,
	devel@openvz.org, Frederic Weisbecker <fweisbec@gmail.com>
Subject: Re: [PATCH v4 04/14] kmem accounting basic infrastructure
Date: Fri, 12 Oct 2012 11:36:38 +0400	[thread overview]
Message-ID: <5077C886.2030609@parallels.com> (raw)
In-Reply-To: <20121011101119.GB29295@dhcp22.suse.cz>

On 10/11/2012 02:11 PM, Michal Hocko wrote:
> On Mon 08-10-12 14:06:10, Glauber Costa wrote:
>> This patch adds the basic infrastructure for the accounting of the slab
>> caches. To control that, the following files are created:
>>
>>  * memory.kmem.usage_in_bytes
>>  * memory.kmem.limit_in_bytes
>>  * memory.kmem.failcnt
>>  * memory.kmem.max_usage_in_bytes
>>
>> They have the same meaning of their user memory counterparts. They
>> reflect the state of the "kmem" res_counter.
>>
>> Per cgroup slab memory accounting is not enabled until a limit is set
> 
> s/slab/kmem/ right?
> 
right.

>> +static int memcg_update_kmem_limit(struct cgroup *cont, u64 val)
>> +{
>> +	int ret = -EINVAL;
>> +#ifdef CONFIG_MEMCG_KMEM
>> +	struct mem_cgroup *memcg = mem_cgroup_from_cont(cont);
>> +	/*
>> +	 * For simplicity, we won't allow this to be disabled.  It also can't
>> +	 * be changed if the cgroup has children already, or if tasks had
>> +	 * already joined.
>> +	 *
>> +	 * If tasks join before we set the limit, a person looking at
>> +	 * kmem.usage_in_bytes will have no way to determine when it took
>> +	 * place, which makes the value quite meaningless.
>> +	 *
>> +	 * After it first became limited, changes in the value of the limit are
>> +	 * of course permitted.
>> +	 *
>> +	 * Taking the cgroup_lock is really offensive, but it is so far the only
>> +	 * way to guarantee that no children will appear. There are plenty of
>> +	 * other offenders, and they should all go away. Fine grained locking
>> +	 * is probably the way to go here. When we are fully hierarchical, we
>> +	 * can also get rid of the use_hierarchy check.
>> +	 */
>> +	cgroup_lock();
>> +	mutex_lock(&set_limit_mutex);
>> +	if (!memcg->kmem_accounted && val != RESOURCE_MAX) {
> 
> Just a nit but wouldn't memcg_kmem_is_accounted(memcg) be better than
> directly checking kmem_accounted?
> Besides that I am not sure I fully understand RESOURCE_MAX test. Say I
> want to have kmem accounting for monitoring so I do 
> echo -1 > memory.kmem.limit_in_bytes
> 
> so you set the value but do not activate it. Isn't this just a reminder
> from the time when the accounting could be deactivated?
> 

No, not at all.

I see you have talked about that in other e-mails, (I was on sick leave
yesterday), so let me consolidate it all here:

What we discussed before, regarding to echo -1 > ... was around the
disable code, something that we no longer allow. So now, if you will
echo -1 to that file *after* it is limited, you get in track only mode.

But for you to start that, you absolutely have to write something
different than -1.

Just one example: libcgroup, regardless of how lame we think it is in
this regard, will write to all cgroup files by default when a file is
updated. If you haven't written anything, it will still write the same
value that the file had before.

This means that an already deployed libcg-managed installation will
suddenly enable kmem for every cgroup. Sure this can be fixed in
userspace, but:

1) There is no reason to break it, if we can
2) It is perfectly reasonable to expect that if you write to a file the
same value that was already there, nothing happens.

I'll update the docs to say that you can just write -1 *after* it is
limited, but i believe enabling it has to be a very clear transition,
for sanity's sake.

>> +		if (cgroup_task_count(cont) || (memcg->use_hierarchy &&
>> +						!list_empty(&cont->children))) {
>> +			ret = -EBUSY;
>> +			goto out;
>> +		}
>> +		ret = res_counter_set_limit(&memcg->kmem, val);
> 
> VM_BUG_IN(ret) ?
> There shouldn't be any usage when you enable it or something bad is
> going on.
>
Good point, this is indeed an impossible scenario I was just being
overcautious about.

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

WARNING: multiple messages have this Message-ID (diff)
From: Glauber Costa <glommer@parallels.com>
To: Michal Hocko <mhocko@suse.cz>
Cc: <linux-kernel@vger.kernel.org>, <linux-mm@kvack.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Mel Gorman <mgorman@suse.de>,
	Suleiman Souhlal <suleiman@google.com>, Tejun Heo <tj@kernel.org>,
	<cgroups@vger.kernel.org>, <kamezawa.hiroyu@jp.fujitsu.com>,
	Johannes Weiner <hannes@cmpxchg.org>,
	Greg Thelen <gthelen@google.com>, <devel@openvz.org>,
	Frederic Weisbecker <fweisbec@gmail.com>
Subject: Re: [PATCH v4 04/14] kmem accounting basic infrastructure
Date: Fri, 12 Oct 2012 11:36:38 +0400	[thread overview]
Message-ID: <5077C886.2030609@parallels.com> (raw)
In-Reply-To: <20121011101119.GB29295@dhcp22.suse.cz>

On 10/11/2012 02:11 PM, Michal Hocko wrote:
> On Mon 08-10-12 14:06:10, Glauber Costa wrote:
>> This patch adds the basic infrastructure for the accounting of the slab
>> caches. To control that, the following files are created:
>>
>>  * memory.kmem.usage_in_bytes
>>  * memory.kmem.limit_in_bytes
>>  * memory.kmem.failcnt
>>  * memory.kmem.max_usage_in_bytes
>>
>> They have the same meaning of their user memory counterparts. They
>> reflect the state of the "kmem" res_counter.
>>
>> Per cgroup slab memory accounting is not enabled until a limit is set
> 
> s/slab/kmem/ right?
> 
right.

>> +static int memcg_update_kmem_limit(struct cgroup *cont, u64 val)
>> +{
>> +	int ret = -EINVAL;
>> +#ifdef CONFIG_MEMCG_KMEM
>> +	struct mem_cgroup *memcg = mem_cgroup_from_cont(cont);
>> +	/*
>> +	 * For simplicity, we won't allow this to be disabled.  It also can't
>> +	 * be changed if the cgroup has children already, or if tasks had
>> +	 * already joined.
>> +	 *
>> +	 * If tasks join before we set the limit, a person looking at
>> +	 * kmem.usage_in_bytes will have no way to determine when it took
>> +	 * place, which makes the value quite meaningless.
>> +	 *
>> +	 * After it first became limited, changes in the value of the limit are
>> +	 * of course permitted.
>> +	 *
>> +	 * Taking the cgroup_lock is really offensive, but it is so far the only
>> +	 * way to guarantee that no children will appear. There are plenty of
>> +	 * other offenders, and they should all go away. Fine grained locking
>> +	 * is probably the way to go here. When we are fully hierarchical, we
>> +	 * can also get rid of the use_hierarchy check.
>> +	 */
>> +	cgroup_lock();
>> +	mutex_lock(&set_limit_mutex);
>> +	if (!memcg->kmem_accounted && val != RESOURCE_MAX) {
> 
> Just a nit but wouldn't memcg_kmem_is_accounted(memcg) be better than
> directly checking kmem_accounted?
> Besides that I am not sure I fully understand RESOURCE_MAX test. Say I
> want to have kmem accounting for monitoring so I do 
> echo -1 > memory.kmem.limit_in_bytes
> 
> so you set the value but do not activate it. Isn't this just a reminder
> from the time when the accounting could be deactivated?
> 

No, not at all.

I see you have talked about that in other e-mails, (I was on sick leave
yesterday), so let me consolidate it all here:

What we discussed before, regarding to echo -1 > ... was around the
disable code, something that we no longer allow. So now, if you will
echo -1 to that file *after* it is limited, you get in track only mode.

But for you to start that, you absolutely have to write something
different than -1.

Just one example: libcgroup, regardless of how lame we think it is in
this regard, will write to all cgroup files by default when a file is
updated. If you haven't written anything, it will still write the same
value that the file had before.

This means that an already deployed libcg-managed installation will
suddenly enable kmem for every cgroup. Sure this can be fixed in
userspace, but:

1) There is no reason to break it, if we can
2) It is perfectly reasonable to expect that if you write to a file the
same value that was already there, nothing happens.

I'll update the docs to say that you can just write -1 *after* it is
limited, but i believe enabling it has to be a very clear transition,
for sanity's sake.

>> +		if (cgroup_task_count(cont) || (memcg->use_hierarchy &&
>> +						!list_empty(&cont->children))) {
>> +			ret = -EBUSY;
>> +			goto out;
>> +		}
>> +		ret = res_counter_set_limit(&memcg->kmem, val);
> 
> VM_BUG_IN(ret) ?
> There shouldn't be any usage when you enable it or something bad is
> going on.
>
Good point, this is indeed an impossible scenario I was just being
overcautious about.


  parent reply	other threads:[~2012-10-12  7:36 UTC|newest]

Thread overview: 136+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-10-08 10:06 [PATCH v4 00/14] kmem controller for memcg Glauber Costa
2012-10-08 10:06 ` Glauber Costa
2012-10-08 10:06 ` Glauber Costa
     [not found] ` <1349690780-15988-1-git-send-email-glommer-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
2012-10-08 10:06   ` [PATCH v4 01/14] memcg: Make it possible to use the stock for more than one page Glauber Costa
2012-10-08 10:06     ` Glauber Costa
2012-10-08 10:06     ` Glauber Costa
2012-10-08 10:06   ` [PATCH v4 02/14] memcg: Reclaim when more than one page needed Glauber Costa
2012-10-08 10:06     ` Glauber Costa
2012-10-08 10:06     ` Glauber Costa
     [not found]     ` <1349690780-15988-3-git-send-email-glommer-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
2012-10-16  3:22       ` Kamezawa Hiroyuki
2012-10-16  3:22         ` Kamezawa Hiroyuki
2012-10-16  3:22         ` Kamezawa Hiroyuki
2012-10-08 10:06   ` [PATCH v4 03/14] memcg: change defines to an enum Glauber Costa
2012-10-08 10:06     ` Glauber Costa
2012-10-08 10:06     ` Glauber Costa
2012-10-08 10:06   ` [PATCH v4 04/14] kmem accounting basic infrastructure Glauber Costa
2012-10-08 10:06     ` Glauber Costa
2012-10-08 10:06     ` Glauber Costa
     [not found]     ` <1349690780-15988-5-git-send-email-glommer-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
2012-10-11 10:11       ` Michal Hocko
2012-10-11 10:11         ` Michal Hocko
2012-10-11 10:11         ` Michal Hocko
2012-10-11 12:53         ` Michal Hocko
2012-10-11 12:53           ` Michal Hocko
2012-10-11 13:38         ` Michal Hocko
2012-10-11 13:38           ` Michal Hocko
     [not found]         ` <20121011101119.GB29295-2MMpYkNvuYDjFM9bn6wA6Q@public.gmane.org>
2012-10-12  7:36           ` Glauber Costa [this message]
2012-10-12  7:36             ` Glauber Costa
2012-10-12  7:36             ` Glauber Costa
     [not found]             ` <5077C886.2030609-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
2012-10-12  8:27               ` Michal Hocko
2012-10-12  8:27                 ` Michal Hocko
2012-10-12  8:27                 ` Michal Hocko
2012-10-08 10:06   ` [PATCH v4 05/14] Add a __GFP_KMEMCG flag Glauber Costa
2012-10-08 10:06     ` Glauber Costa
2012-10-08 10:06     ` Glauber Costa
     [not found]     ` <1349690780-15988-6-git-send-email-glommer-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
2012-10-09 15:04       ` Michal Hocko
2012-10-09 15:04         ` Michal Hocko
2012-10-09 15:04         ` Michal Hocko
2012-10-08 10:06   ` [PATCH v4 06/14] memcg: kmem controller infrastructure Glauber Costa
2012-10-08 10:06     ` Glauber Costa
2012-10-08 10:06     ` Glauber Costa
2012-10-11 12:42     ` Michal Hocko
2012-10-11 12:42       ` Michal Hocko
2012-10-11 12:56       ` Michal Hocko
2012-10-11 12:56         ` Michal Hocko
     [not found]       ` <20121011124212.GC29295-2MMpYkNvuYDjFM9bn6wA6Q@public.gmane.org>
2012-10-12  7:45         ` Glauber Costa
2012-10-12  7:45           ` Glauber Costa
2012-10-12  7:45           ` Glauber Costa
2012-10-12  8:39           ` Michal Hocko
2012-10-12  8:39             ` Michal Hocko
     [not found]             ` <20121012083944.GD10110-2MMpYkNvuYDjFM9bn6wA6Q@public.gmane.org>
2012-10-12  8:44               ` Glauber Costa
2012-10-12  8:44                 ` Glauber Costa
2012-10-12  8:44                 ` Glauber Costa
     [not found]                 ` <5077D889.2040100-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
2012-10-12  8:57                   ` Michal Hocko
2012-10-12  8:57                     ` Michal Hocko
2012-10-12  8:57                     ` Michal Hocko
     [not found]                     ` <20121012085740.GG10110-2MMpYkNvuYDjFM9bn6wA6Q@public.gmane.org>
2012-10-12  9:13                       ` Glauber Costa
2012-10-12  9:13                         ` Glauber Costa
2012-10-12  9:13                         ` Glauber Costa
     [not found]                         ` <5077DF20.7020200-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
2012-10-12  9:47                           ` Michal Hocko
2012-10-12  9:47                             ` Michal Hocko
2012-10-12  9:47                             ` Michal Hocko
2012-10-16  8:00                           ` Kamezawa Hiroyuki
2012-10-16  8:00                             ` Kamezawa Hiroyuki
2012-10-16  8:00                             ` Kamezawa Hiroyuki
2012-10-08 10:06   ` [PATCH v4 07/14] mm: Allocate kernel pages to the right memcg Glauber Costa
2012-10-08 10:06     ` Glauber Costa
2012-10-08 10:06     ` Glauber Costa
2012-10-08 10:06   ` [PATCH v4 08/14] res_counter: return amount of charges after res_counter_uncharge Glauber Costa
2012-10-08 10:06     ` Glauber Costa
2012-10-08 10:06     ` Glauber Costa
2012-10-09 15:08     ` Michal Hocko
2012-10-09 15:08       ` Michal Hocko
2012-10-09 15:14       ` Glauber Costa
2012-10-09 15:14         ` Glauber Costa
2012-10-09 15:35         ` Michal Hocko
2012-10-09 15:35           ` Michal Hocko
     [not found]           ` <20121009153506.GD7655-2MMpYkNvuYDjFM9bn6wA6Q@public.gmane.org>
2012-10-10  9:03             ` Glauber Costa
2012-10-10  9:03               ` Glauber Costa
2012-10-10  9:03               ` Glauber Costa
     [not found]               ` <507539EB.90006-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
2012-10-10 11:24                 ` Michal Hocko
2012-10-10 11:24                   ` Michal Hocko
2012-10-10 11:24                   ` Michal Hocko
     [not found]     ` <1349690780-15988-9-git-send-email-glommer-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
2012-10-10 11:25       ` Michal Hocko
2012-10-10 11:25         ` Michal Hocko
2012-10-10 11:25         ` Michal Hocko
2012-10-16  8:20       ` Kamezawa Hiroyuki
2012-10-16  8:20         ` Kamezawa Hiroyuki
2012-10-16  8:20         ` Kamezawa Hiroyuki
2012-10-08 10:06   ` [PATCH v4 09/14] memcg: kmem accounting lifecycle management Glauber Costa
2012-10-08 10:06     ` Glauber Costa
2012-10-08 10:06     ` Glauber Costa
     [not found]     ` <1349690780-15988-10-git-send-email-glommer-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
2012-10-11 13:11       ` Michal Hocko
2012-10-11 13:11         ` Michal Hocko
2012-10-11 13:11         ` Michal Hocko
     [not found]         ` <20121011131143.GF29295-2MMpYkNvuYDjFM9bn6wA6Q@public.gmane.org>
2012-10-12  7:47           ` Glauber Costa
2012-10-12  7:47             ` Glauber Costa
2012-10-12  7:47             ` Glauber Costa
     [not found]             ` <5077CB05.907-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
2012-10-12  8:41               ` Michal Hocko
2012-10-12  8:41                 ` Michal Hocko
2012-10-12  8:41                 ` Michal Hocko
2012-10-16  8:41                 ` Kamezawa Hiroyuki
2012-10-16  8:41                   ` Kamezawa Hiroyuki
2012-10-08 10:06   ` [PATCH v4 10/14] memcg: use static branches when code not in use Glauber Costa
2012-10-08 10:06     ` Glauber Costa
2012-10-08 10:06     ` Glauber Costa
     [not found]     ` <1349690780-15988-11-git-send-email-glommer-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
2012-10-11 13:40       ` Michal Hocko
2012-10-11 13:40         ` Michal Hocko
2012-10-11 13:40         ` Michal Hocko
2012-10-12  7:47         ` Glauber Costa
2012-10-12  7:47           ` Glauber Costa
2012-10-16  8:48           ` Kamezawa Hiroyuki
2012-10-16  8:48             ` Kamezawa Hiroyuki
2012-10-08 10:06   ` [PATCH v4 11/14] memcg: allow a memcg with kmem charges to be destructed Glauber Costa
2012-10-08 10:06     ` Glauber Costa
2012-10-08 10:06     ` Glauber Costa
2012-10-08 10:06   ` [PATCH v4 12/14] execute the whole memcg freeing in free_worker Glauber Costa
2012-10-08 10:06     ` Glauber Costa
2012-10-08 10:06     ` Glauber Costa
     [not found]     ` <1349690780-15988-13-git-send-email-glommer-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
2012-10-11 14:21       ` Michal Hocko
2012-10-11 14:21         ` Michal Hocko
2012-10-11 14:21         ` Michal Hocko
2012-10-08 10:06   ` [PATCH v4 13/14] protect architectures where THREAD_SIZE >= PAGE_SIZE against fork bombs Glauber Costa
2012-10-08 10:06     ` Glauber Costa
2012-10-08 10:06     ` Glauber Costa
2012-10-08 10:06   ` [PATCH v4 14/14] Add documentation about the kmem controller Glauber Costa
2012-10-08 10:06     ` Glauber Costa
2012-10-08 10:06     ` Glauber Costa
2012-10-11 14:35     ` Michal Hocko
2012-10-11 14:35       ` Michal Hocko
     [not found]       ` <20121011143559.GJ29295-2MMpYkNvuYDjFM9bn6wA6Q@public.gmane.org>
2012-10-12  7:53         ` Glauber Costa
2012-10-12  7:53           ` Glauber Costa
2012-10-12  7:53           ` Glauber Costa
2012-10-12  8:44           ` Michal Hocko
2012-10-12  8:44             ` Michal Hocko
2012-10-17  7:29     ` Kamezawa Hiroyuki
2012-10-17  7:29       ` 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=5077C886.2030609@parallels.com \
    --to=glommer-bzqdu9zft3wakbo8gow8eq@public.gmane.org \
    --cc=akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org \
    --cc=cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=devel-GEFAQzZX7r8dnm+yROfE0A@public.gmane.org \
    --cc=fweisbec-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    --cc=gthelen-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org \
    --cc=hannes-druUgvl0LCNAfugRpC6u6w@public.gmane.org \
    --cc=kamezawa.hiroyu-+CUm20s59erQFUHtdCDX3A@public.gmane.org \
    --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-mm-Bw31MaZKKs3YtjvyW6yDsg@public.gmane.org \
    --cc=mgorman-l3A5Bk7waGM@public.gmane.org \
    --cc=mhocko-AlSwsSmVLrQ@public.gmane.org \
    --cc=suleiman-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org \
    --cc=tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.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.