From: Glauber Costa <glommer@parallels.com>
To: Sasha Levin <sasha.levin@oracle.com>
Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org,
Andrew Morton <akpm@linux-foundation.org>,
kamezawa.hiroyu@jp.fujitsu.com,
Johannes Weiner <hannes@cmpxchg.org>, Tejun Heo <tj@kernel.org>,
Michal Hocko <mhocko@suse.cz>, Christoph Lameter <cl@linux.com>,
Pekka Enberg <penberg@kernel.org>,
David Rientjes <rientjes@google.com>,
Pekka Enberg <penberg@cs.helsinki.fi>,
Suleiman Souhlal <suleiman@google.com>,
Dave Jones <davej@redhat.com>
Subject: Re: [PATCH v6 28/29] slub: slub-specific propagation changes.
Date: Thu, 8 Nov 2012 07:51:31 +0100 [thread overview]
Message-ID: <509B5673.8020801@parallels.com> (raw)
In-Reply-To: <509A83F8.6040402@oracle.com>
On 11/07/2012 04:53 PM, Sasha Levin wrote:
> On 11/01/2012 08:07 AM, Glauber Costa wrote:
>> SLUB allows us to tune a particular cache behavior with sysfs-based
>> tunables. When creating a new memcg cache copy, we'd like to preserve
>> any tunables the parent cache already had.
>>
>> This can be done by tapping into the store attribute function provided
>> by the allocator. We of course don't need to mess with read-only
>> fields. Since the attributes can have multiple types and are stored
>> internally by sysfs, the best strategy is to issue a ->show() in the
>> root cache, and then ->store() in the memcg cache.
>>
>> The drawback of that, is that sysfs can allocate up to a page in
>> buffering for show(), that we are likely not to need, but also can't
>> guarantee. To avoid always allocating a page for that, we can update the
>> caches at store time with the maximum attribute size ever stored to the
>> root cache. We will then get a buffer big enough to hold it. The
>> corolary to this, is that if no stores happened, nothing will be
>> propagated.
>>
>> It can also happen that a root cache has its tunables updated during
>> normal system operation. In this case, we will propagate the change to
>> all caches that are already active.
>>
>> Signed-off-by: Glauber Costa <glommer@parallels.com>
>> CC: Christoph Lameter <cl@linux.com>
>> CC: Pekka Enberg <penberg@cs.helsinki.fi>
>> CC: Michal Hocko <mhocko@suse.cz>
>> CC: Kamezawa Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
>> CC: Johannes Weiner <hannes@cmpxchg.org>
>> CC: Suleiman Souhlal <suleiman@google.com>
>> CC: Tejun Heo <tj@kernel.org>
>> ---
>
> Hi guys,
>
> This patch is making lockdep angry! *bark bark*
>
> [ 351.935003] ======================================================
> [ 351.937693] [ INFO: possible circular locking dependency detected ]
> [ 351.939720] 3.7.0-rc4-next-20121106-sasha-00008-g353b62f #117 Tainted: G W
> [ 351.942444] -------------------------------------------------------
> [ 351.943528] trinity-child13/6961 is trying to acquire lock:
> [ 351.943528] (s_active#43){++++.+}, at: [<ffffffff812f9e11>] sysfs_addrm_finish+0x31/0x60
> [ 351.943528]
> [ 351.943528] but task is already holding lock:
> [ 351.943528] (slab_mutex){+.+.+.}, at: [<ffffffff81228a42>] kmem_cache_destroy+0x22/0xe0
> [ 351.943528]
> [ 351.943528] which lock already depends on the new lock.
> [ 351.943528]
> [ 351.943528]
> [ 351.943528] the existing dependency chain (in reverse order) is:
> [ 351.943528]
> -> #1 (slab_mutex){+.+.+.}:
> [ 351.960334] [<ffffffff8118536a>] lock_acquire+0x1aa/0x240
> [ 351.960334] [<ffffffff83a944d9>] __mutex_lock_common+0x59/0x5a0
> [ 351.960334] [<ffffffff83a94a5f>] mutex_lock_nested+0x3f/0x50
> [ 351.960334] [<ffffffff81256a6e>] slab_attr_store+0xde/0x110
> [ 351.960334] [<ffffffff812f820a>] sysfs_write_file+0xfa/0x150
> [ 351.960334] [<ffffffff8127a220>] vfs_write+0xb0/0x180
> [ 351.960334] [<ffffffff8127a540>] sys_pwrite64+0x60/0xb0
> [ 351.960334] [<ffffffff83a99298>] tracesys+0xe1/0xe6
> [ 351.960334]
> -> #0 (s_active#43){++++.+}:
> [ 351.960334] [<ffffffff811825af>] __lock_acquire+0x14df/0x1ca0
> [ 351.960334] [<ffffffff8118536a>] lock_acquire+0x1aa/0x240
> [ 351.960334] [<ffffffff812f9272>] sysfs_deactivate+0x122/0x1a0
> [ 351.960334] [<ffffffff812f9e11>] sysfs_addrm_finish+0x31/0x60
> [ 351.960334] [<ffffffff812fa369>] sysfs_remove_dir+0x89/0xd0
> [ 351.960334] [<ffffffff819e1d96>] kobject_del+0x16/0x40
> [ 351.960334] [<ffffffff8125ed40>] __kmem_cache_shutdown+0x40/0x60
> [ 351.960334] [<ffffffff81228a60>] kmem_cache_destroy+0x40/0xe0
> [ 351.960334] [<ffffffff82b21058>] mon_text_release+0x78/0xe0
> [ 351.960334] [<ffffffff8127b3b2>] __fput+0x122/0x2d0
> [ 351.960334] [<ffffffff8127b569>] ____fput+0x9/0x10
> [ 351.960334] [<ffffffff81131b4e>] task_work_run+0xbe/0x100
> [ 351.960334] [<ffffffff81110742>] do_exit+0x432/0xbd0
> [ 351.960334] [<ffffffff81110fa4>] do_group_exit+0x84/0xd0
> [ 351.960334] [<ffffffff8112431d>] get_signal_to_deliver+0x81d/0x930
> [ 351.960334] [<ffffffff8106d5aa>] do_signal+0x3a/0x950
> [ 351.960334] [<ffffffff8106df1e>] do_notify_resume+0x3e/0x90
> [ 351.960334] [<ffffffff83a993aa>] int_signal+0x12/0x17
> [ 351.960334]
> [ 351.960334] other info that might help us debug this:
> [ 351.960334]
> [ 351.960334] Possible unsafe locking scenario:
> [ 351.960334]
> [ 351.960334] CPU0 CPU1
> [ 351.960334] ---- ----
> [ 351.960334] lock(slab_mutex);
> [ 351.960334] lock(s_active#43);
> [ 351.960334] lock(slab_mutex);
> [ 351.960334] lock(s_active#43);
> [ 351.960334]
> [ 351.960334] *** DEADLOCK ***
> [ 351.960334]
> [ 351.960334] 2 locks held by trinity-child13/6961:
> [ 351.960334] #0: (mon_lock){+.+.+.}, at: [<ffffffff82b21005>] mon_text_release+0x25/0xe0
> [ 351.960334] #1: (slab_mutex){+.+.+.}, at: [<ffffffff81228a42>] kmem_cache_destroy+0x22/0xe0
> [ 351.960334]
> [ 351.960334] stack backtrace:
> [ 351.960334] Pid: 6961, comm: trinity-child13 Tainted: G W 3.7.0-rc4-next-20121106-sasha-00008-g353b62f #117
> [ 351.960334] Call Trace:
> [ 351.960334] [<ffffffff83a3c736>] print_circular_bug+0x1fb/0x20c
> [ 351.960334] [<ffffffff811825af>] __lock_acquire+0x14df/0x1ca0
> [ 351.960334] [<ffffffff81184045>] ? debug_check_no_locks_freed+0x185/0x1e0
> [ 351.960334] [<ffffffff8118536a>] lock_acquire+0x1aa/0x240
> [ 351.960334] [<ffffffff812f9e11>] ? sysfs_addrm_finish+0x31/0x60
> [ 351.960334] [<ffffffff812f9272>] sysfs_deactivate+0x122/0x1a0
> [ 351.960334] [<ffffffff812f9e11>] ? sysfs_addrm_finish+0x31/0x60
> [ 351.960334] [<ffffffff812f9e11>] sysfs_addrm_finish+0x31/0x60
> [ 351.960334] [<ffffffff812fa369>] sysfs_remove_dir+0x89/0xd0
> [ 351.960334] [<ffffffff819e1d96>] kobject_del+0x16/0x40
> [ 351.960334] [<ffffffff8125ed40>] __kmem_cache_shutdown+0x40/0x60
> [ 351.960334] [<ffffffff81228a60>] kmem_cache_destroy+0x40/0xe0
> [ 351.960334] [<ffffffff82b21058>] mon_text_release+0x78/0xe0
> [ 351.960334] [<ffffffff8127b3b2>] __fput+0x122/0x2d0
> [ 351.960334] [<ffffffff8127b569>] ____fput+0x9/0x10
> [ 351.960334] [<ffffffff81131b4e>] task_work_run+0xbe/0x100
> [ 351.960334] [<ffffffff81110742>] do_exit+0x432/0xbd0
> [ 351.960334] [<ffffffff811243b9>] ? get_signal_to_deliver+0x8b9/0x930
> [ 351.960334] [<ffffffff8117d402>] ? get_lock_stats+0x22/0x70
> [ 351.960334] [<ffffffff8117d48e>] ? put_lock_stats.isra.16+0xe/0x40
> [ 351.960334] [<ffffffff83a977fb>] ? _raw_spin_unlock_irq+0x2b/0x80
> [ 351.960334] [<ffffffff81110fa4>] do_group_exit+0x84/0xd0
> [ 351.960334] [<ffffffff8112431d>] get_signal_to_deliver+0x81d/0x930
> [ 351.960334] [<ffffffff8117d48e>] ? put_lock_stats.isra.16+0xe/0x40
> [ 351.960334] [<ffffffff8106d5aa>] do_signal+0x3a/0x950
> [ 351.960334] [<ffffffff811c8b33>] ? rcu_cleanup_after_idle+0x23/0x170
> [ 351.960334] [<ffffffff811cc1c4>] ? rcu_eqs_exit_common+0x64/0x3a0
> [ 351.960334] [<ffffffff811caa5d>] ? rcu_user_enter+0x10d/0x140
> [ 351.960334] [<ffffffff811cc8d5>] ? rcu_user_exit+0xc5/0xf0
> [ 351.960334] [<ffffffff8106df1e>] do_notify_resume+0x3e/0x90
> [ 351.960334] [<ffffffff83a993aa>] int_signal+0x12/0x17
>
>
> Thanks,
> Sasha
Hello Sasha,
May I ask how did you trigger 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/ .
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: Sasha Levin <sasha.levin@oracle.com>
Cc: <linux-mm@kvack.org>, <linux-kernel@vger.kernel.org>,
Andrew Morton <akpm@linux-foundation.org>,
<kamezawa.hiroyu@jp.fujitsu.com>,
Johannes Weiner <hannes@cmpxchg.org>, Tejun Heo <tj@kernel.org>,
Michal Hocko <mhocko@suse.cz>, Christoph Lameter <cl@linux.com>,
Pekka Enberg <penberg@kernel.org>,
David Rientjes <rientjes@google.com>,
Pekka Enberg <penberg@cs.helsinki.fi>,
Suleiman Souhlal <suleiman@google.com>,
Dave Jones <davej@redhat.com>
Subject: Re: [PATCH v6 28/29] slub: slub-specific propagation changes.
Date: Thu, 8 Nov 2012 07:51:31 +0100 [thread overview]
Message-ID: <509B5673.8020801@parallels.com> (raw)
In-Reply-To: <509A83F8.6040402@oracle.com>
On 11/07/2012 04:53 PM, Sasha Levin wrote:
> On 11/01/2012 08:07 AM, Glauber Costa wrote:
>> SLUB allows us to tune a particular cache behavior with sysfs-based
>> tunables. When creating a new memcg cache copy, we'd like to preserve
>> any tunables the parent cache already had.
>>
>> This can be done by tapping into the store attribute function provided
>> by the allocator. We of course don't need to mess with read-only
>> fields. Since the attributes can have multiple types and are stored
>> internally by sysfs, the best strategy is to issue a ->show() in the
>> root cache, and then ->store() in the memcg cache.
>>
>> The drawback of that, is that sysfs can allocate up to a page in
>> buffering for show(), that we are likely not to need, but also can't
>> guarantee. To avoid always allocating a page for that, we can update the
>> caches at store time with the maximum attribute size ever stored to the
>> root cache. We will then get a buffer big enough to hold it. The
>> corolary to this, is that if no stores happened, nothing will be
>> propagated.
>>
>> It can also happen that a root cache has its tunables updated during
>> normal system operation. In this case, we will propagate the change to
>> all caches that are already active.
>>
>> Signed-off-by: Glauber Costa <glommer@parallels.com>
>> CC: Christoph Lameter <cl@linux.com>
>> CC: Pekka Enberg <penberg@cs.helsinki.fi>
>> CC: Michal Hocko <mhocko@suse.cz>
>> CC: Kamezawa Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
>> CC: Johannes Weiner <hannes@cmpxchg.org>
>> CC: Suleiman Souhlal <suleiman@google.com>
>> CC: Tejun Heo <tj@kernel.org>
>> ---
>
> Hi guys,
>
> This patch is making lockdep angry! *bark bark*
>
> [ 351.935003] ======================================================
> [ 351.937693] [ INFO: possible circular locking dependency detected ]
> [ 351.939720] 3.7.0-rc4-next-20121106-sasha-00008-g353b62f #117 Tainted: G W
> [ 351.942444] -------------------------------------------------------
> [ 351.943528] trinity-child13/6961 is trying to acquire lock:
> [ 351.943528] (s_active#43){++++.+}, at: [<ffffffff812f9e11>] sysfs_addrm_finish+0x31/0x60
> [ 351.943528]
> [ 351.943528] but task is already holding lock:
> [ 351.943528] (slab_mutex){+.+.+.}, at: [<ffffffff81228a42>] kmem_cache_destroy+0x22/0xe0
> [ 351.943528]
> [ 351.943528] which lock already depends on the new lock.
> [ 351.943528]
> [ 351.943528]
> [ 351.943528] the existing dependency chain (in reverse order) is:
> [ 351.943528]
> -> #1 (slab_mutex){+.+.+.}:
> [ 351.960334] [<ffffffff8118536a>] lock_acquire+0x1aa/0x240
> [ 351.960334] [<ffffffff83a944d9>] __mutex_lock_common+0x59/0x5a0
> [ 351.960334] [<ffffffff83a94a5f>] mutex_lock_nested+0x3f/0x50
> [ 351.960334] [<ffffffff81256a6e>] slab_attr_store+0xde/0x110
> [ 351.960334] [<ffffffff812f820a>] sysfs_write_file+0xfa/0x150
> [ 351.960334] [<ffffffff8127a220>] vfs_write+0xb0/0x180
> [ 351.960334] [<ffffffff8127a540>] sys_pwrite64+0x60/0xb0
> [ 351.960334] [<ffffffff83a99298>] tracesys+0xe1/0xe6
> [ 351.960334]
> -> #0 (s_active#43){++++.+}:
> [ 351.960334] [<ffffffff811825af>] __lock_acquire+0x14df/0x1ca0
> [ 351.960334] [<ffffffff8118536a>] lock_acquire+0x1aa/0x240
> [ 351.960334] [<ffffffff812f9272>] sysfs_deactivate+0x122/0x1a0
> [ 351.960334] [<ffffffff812f9e11>] sysfs_addrm_finish+0x31/0x60
> [ 351.960334] [<ffffffff812fa369>] sysfs_remove_dir+0x89/0xd0
> [ 351.960334] [<ffffffff819e1d96>] kobject_del+0x16/0x40
> [ 351.960334] [<ffffffff8125ed40>] __kmem_cache_shutdown+0x40/0x60
> [ 351.960334] [<ffffffff81228a60>] kmem_cache_destroy+0x40/0xe0
> [ 351.960334] [<ffffffff82b21058>] mon_text_release+0x78/0xe0
> [ 351.960334] [<ffffffff8127b3b2>] __fput+0x122/0x2d0
> [ 351.960334] [<ffffffff8127b569>] ____fput+0x9/0x10
> [ 351.960334] [<ffffffff81131b4e>] task_work_run+0xbe/0x100
> [ 351.960334] [<ffffffff81110742>] do_exit+0x432/0xbd0
> [ 351.960334] [<ffffffff81110fa4>] do_group_exit+0x84/0xd0
> [ 351.960334] [<ffffffff8112431d>] get_signal_to_deliver+0x81d/0x930
> [ 351.960334] [<ffffffff8106d5aa>] do_signal+0x3a/0x950
> [ 351.960334] [<ffffffff8106df1e>] do_notify_resume+0x3e/0x90
> [ 351.960334] [<ffffffff83a993aa>] int_signal+0x12/0x17
> [ 351.960334]
> [ 351.960334] other info that might help us debug this:
> [ 351.960334]
> [ 351.960334] Possible unsafe locking scenario:
> [ 351.960334]
> [ 351.960334] CPU0 CPU1
> [ 351.960334] ---- ----
> [ 351.960334] lock(slab_mutex);
> [ 351.960334] lock(s_active#43);
> [ 351.960334] lock(slab_mutex);
> [ 351.960334] lock(s_active#43);
> [ 351.960334]
> [ 351.960334] *** DEADLOCK ***
> [ 351.960334]
> [ 351.960334] 2 locks held by trinity-child13/6961:
> [ 351.960334] #0: (mon_lock){+.+.+.}, at: [<ffffffff82b21005>] mon_text_release+0x25/0xe0
> [ 351.960334] #1: (slab_mutex){+.+.+.}, at: [<ffffffff81228a42>] kmem_cache_destroy+0x22/0xe0
> [ 351.960334]
> [ 351.960334] stack backtrace:
> [ 351.960334] Pid: 6961, comm: trinity-child13 Tainted: G W 3.7.0-rc4-next-20121106-sasha-00008-g353b62f #117
> [ 351.960334] Call Trace:
> [ 351.960334] [<ffffffff83a3c736>] print_circular_bug+0x1fb/0x20c
> [ 351.960334] [<ffffffff811825af>] __lock_acquire+0x14df/0x1ca0
> [ 351.960334] [<ffffffff81184045>] ? debug_check_no_locks_freed+0x185/0x1e0
> [ 351.960334] [<ffffffff8118536a>] lock_acquire+0x1aa/0x240
> [ 351.960334] [<ffffffff812f9e11>] ? sysfs_addrm_finish+0x31/0x60
> [ 351.960334] [<ffffffff812f9272>] sysfs_deactivate+0x122/0x1a0
> [ 351.960334] [<ffffffff812f9e11>] ? sysfs_addrm_finish+0x31/0x60
> [ 351.960334] [<ffffffff812f9e11>] sysfs_addrm_finish+0x31/0x60
> [ 351.960334] [<ffffffff812fa369>] sysfs_remove_dir+0x89/0xd0
> [ 351.960334] [<ffffffff819e1d96>] kobject_del+0x16/0x40
> [ 351.960334] [<ffffffff8125ed40>] __kmem_cache_shutdown+0x40/0x60
> [ 351.960334] [<ffffffff81228a60>] kmem_cache_destroy+0x40/0xe0
> [ 351.960334] [<ffffffff82b21058>] mon_text_release+0x78/0xe0
> [ 351.960334] [<ffffffff8127b3b2>] __fput+0x122/0x2d0
> [ 351.960334] [<ffffffff8127b569>] ____fput+0x9/0x10
> [ 351.960334] [<ffffffff81131b4e>] task_work_run+0xbe/0x100
> [ 351.960334] [<ffffffff81110742>] do_exit+0x432/0xbd0
> [ 351.960334] [<ffffffff811243b9>] ? get_signal_to_deliver+0x8b9/0x930
> [ 351.960334] [<ffffffff8117d402>] ? get_lock_stats+0x22/0x70
> [ 351.960334] [<ffffffff8117d48e>] ? put_lock_stats.isra.16+0xe/0x40
> [ 351.960334] [<ffffffff83a977fb>] ? _raw_spin_unlock_irq+0x2b/0x80
> [ 351.960334] [<ffffffff81110fa4>] do_group_exit+0x84/0xd0
> [ 351.960334] [<ffffffff8112431d>] get_signal_to_deliver+0x81d/0x930
> [ 351.960334] [<ffffffff8117d48e>] ? put_lock_stats.isra.16+0xe/0x40
> [ 351.960334] [<ffffffff8106d5aa>] do_signal+0x3a/0x950
> [ 351.960334] [<ffffffff811c8b33>] ? rcu_cleanup_after_idle+0x23/0x170
> [ 351.960334] [<ffffffff811cc1c4>] ? rcu_eqs_exit_common+0x64/0x3a0
> [ 351.960334] [<ffffffff811caa5d>] ? rcu_user_enter+0x10d/0x140
> [ 351.960334] [<ffffffff811cc8d5>] ? rcu_user_exit+0xc5/0xf0
> [ 351.960334] [<ffffffff8106df1e>] do_notify_resume+0x3e/0x90
> [ 351.960334] [<ffffffff83a993aa>] int_signal+0x12/0x17
>
>
> Thanks,
> Sasha
Hello Sasha,
May I ask how did you trigger this ?
next prev parent reply other threads:[~2012-11-08 6:52 UTC|newest]
Thread overview: 150+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-11-01 12:07 [PATCH v6 00/29] kmem controller for memcg Glauber Costa
2012-11-01 12:07 ` Glauber Costa
2012-11-01 12:07 ` [PATCH v6 01/29] memcg: Make it possible to use the stock for more than one page Glauber Costa
2012-11-01 12:07 ` Glauber Costa
2012-11-01 12:07 ` [PATCH v6 02/29] memcg: Reclaim when more than one page needed Glauber Costa
2012-11-01 12:07 ` Glauber Costa
2012-11-01 12:07 ` [PATCH v6 03/29] memcg: change defines to an enum Glauber Costa
2012-11-01 12:07 ` Glauber Costa
2012-11-01 12:07 ` [PATCH v6 04/29] kmem accounting basic infrastructure Glauber Costa
2012-11-01 12:07 ` Glauber Costa
2012-11-01 12:07 ` [PATCH v6 05/29] Add a __GFP_KMEMCG flag Glauber Costa
2012-11-01 12:07 ` Glauber Costa
2012-11-01 19:58 ` Christoph Lameter
2012-11-01 19:58 ` Christoph Lameter
2012-11-01 12:07 ` [PATCH v6 06/29] memcg: kmem controller infrastructure Glauber Costa
2012-11-01 12:07 ` Glauber Costa
2012-11-01 20:03 ` Christoph Lameter
2012-11-01 20:03 ` Christoph Lameter
2012-11-01 12:07 ` [PATCH v6 07/29] mm: Allocate kernel pages to the right memcg Glauber Costa
2012-11-01 12:07 ` Glauber Costa
2012-11-01 12:07 ` [PATCH v6 08/29] res_counter: return amount of charges after res_counter_uncharge Glauber Costa
2012-11-01 12:07 ` Glauber Costa
2012-11-01 12:07 ` [PATCH v6 09/29] memcg: kmem accounting lifecycle management Glauber Costa
2012-11-01 12:07 ` Glauber Costa
2012-11-01 12:07 ` [PATCH v6 10/29] memcg: use static branches when code not in use Glauber Costa
2012-11-01 12:07 ` Glauber Costa
2012-11-01 12:07 ` [PATCH v6 11/29] memcg: allow a memcg with kmem charges to be destructed Glauber Costa
2012-11-01 12:07 ` Glauber Costa
2012-11-02 0:05 ` Andrew Morton
2012-11-02 0:05 ` Andrew Morton
2012-11-02 7:50 ` Glauber Costa
2012-11-02 7:50 ` Glauber Costa
2012-11-06 10:54 ` Michal Hocko
2012-11-06 10:54 ` Michal Hocko
2012-11-01 12:07 ` [PATCH v6 12/29] execute the whole memcg freeing in free_worker Glauber Costa
2012-11-01 12:07 ` Glauber Costa
2012-11-01 12:07 ` [PATCH v6 13/29] protect architectures where THREAD_SIZE >= PAGE_SIZE against fork bombs Glauber Costa
2012-11-01 12:07 ` Glauber Costa
2012-11-01 12:07 ` [PATCH v6 14/29] Add documentation about the kmem controller Glauber Costa
2012-11-01 12:07 ` Glauber Costa
2012-11-01 12:07 ` [PATCH v6 15/29] slab/slub: struct memcg_params Glauber Costa
2012-11-01 12:07 ` Glauber Costa
2012-11-01 12:07 ` [PATCH v6 16/29] slab: annotate on-slab caches nodelist locks Glauber Costa
2012-11-01 12:07 ` Glauber Costa
2012-11-01 12:07 ` [PATCH v6 17/29] consider a memcg parameter in kmem_create_cache Glauber Costa
2012-11-01 12:07 ` Glauber Costa
2012-11-01 12:07 ` [PATCH v6 18/29] Allocate memory for memcg caches whenever a new memcg appears Glauber Costa
2012-11-01 12:07 ` Glauber Costa
2012-11-06 0:23 ` Andrew Morton
2012-11-06 0:23 ` Andrew Morton
2012-11-07 7:05 ` Glauber Costa
2012-11-07 7:05 ` Glauber Costa
2012-11-07 7:10 ` Andrew Morton
2012-11-07 7:10 ` Andrew Morton
2012-11-01 12:07 ` [PATCH v6 19/29] memcg: infrastructure to match an allocation to the right cache Glauber Costa
2012-11-01 12:07 ` Glauber Costa
2012-11-06 0:28 ` Andrew Morton
2012-11-06 0:28 ` Andrew Morton
2012-11-06 8:03 ` Michal Hocko
2012-11-06 8:03 ` Michal Hocko
2012-11-08 11:05 ` Michal Hocko
2012-11-08 11:05 ` Michal Hocko
2012-11-08 14:33 ` Michal Hocko
2012-11-08 14:33 ` Michal Hocko
2012-11-07 7:04 ` Glauber Costa
2012-11-07 7:04 ` Glauber Costa
2012-11-07 7:13 ` Andrew Morton
2012-11-07 7:13 ` Andrew Morton
2012-11-01 12:07 ` [PATCH v6 20/29] memcg: skip memcg kmem allocations in specified code regions Glauber Costa
2012-11-01 12:07 ` Glauber Costa
2012-11-06 0:33 ` Andrew Morton
2012-11-06 0:33 ` Andrew Morton
2012-11-01 12:07 ` [PATCH v6 21/29] sl[au]b: always get the cache from its page in kmem_cache_free Glauber Costa
2012-11-01 12:07 ` Glauber Costa
2012-11-01 12:07 ` [PATCH v6 22/29] sl[au]b: Allocate objects from memcg cache Glauber Costa
2012-11-01 12:07 ` Glauber Costa
2012-11-01 12:07 ` [PATCH v6 23/29] memcg: destroy memcg caches Glauber Costa
2012-11-01 12:07 ` Glauber Costa
2012-11-02 0:05 ` Andrew Morton
2012-11-02 0:05 ` Andrew Morton
2012-11-02 7:46 ` Glauber Costa
2012-11-02 7:46 ` Glauber Costa
2012-11-02 20:19 ` Michal Hocko
2012-11-02 20:19 ` Michal Hocko
2012-11-06 0:40 ` Andrew Morton
2012-11-06 0:40 ` Andrew Morton
2012-11-01 12:07 ` [PATCH v6 24/29] memcg/sl[au]b Track all the memcg children of a kmem_cache Glauber Costa
2012-11-01 12:07 ` Glauber Costa
2012-11-01 12:07 ` [PATCH v6 25/29] memcg/sl[au]b: shrink dead caches Glauber Costa
2012-11-01 12:07 ` Glauber Costa
2012-11-06 0:48 ` Andrew Morton
2012-11-06 0:48 ` Andrew Morton
2012-11-07 7:13 ` Glauber Costa
2012-11-07 7:13 ` Glauber Costa
2012-11-07 7:16 ` Andrew Morton
2012-11-07 7:16 ` Andrew Morton
2012-11-07 9:22 ` Glauber Costa
2012-11-07 9:22 ` Glauber Costa
2012-11-07 22:46 ` Andrew Morton
2012-11-07 22:46 ` Andrew Morton
2012-11-08 7:13 ` Glauber Costa
2012-11-08 7:13 ` Glauber Costa
2012-11-08 17:15 ` Christoph Lameter
2012-11-08 17:15 ` Christoph Lameter
2012-11-08 19:21 ` Andrew Morton
2012-11-08 19:21 ` Andrew Morton
2012-11-08 22:31 ` Glauber Costa
2012-11-08 22:31 ` Glauber Costa
2012-11-08 22:40 ` Andrew Morton
2012-11-08 22:40 ` Andrew Morton
2012-11-09 20:06 ` Christoph Lameter
2012-11-09 20:06 ` Christoph Lameter
2012-11-09 20:04 ` Christoph Lameter
2012-11-09 20:04 ` Christoph Lameter
2012-11-01 12:07 ` [PATCH v6 26/29] Aggregate memcg cache values in slabinfo Glauber Costa
2012-11-01 12:07 ` Glauber Costa
2012-11-06 0:57 ` Andrew Morton
2012-11-06 0:57 ` Andrew Morton
2012-11-01 12:07 ` [PATCH v6 27/29] slab: propagate tunables values Glauber Costa
2012-11-01 12:07 ` Glauber Costa
2012-11-01 12:07 ` [PATCH v6 28/29] slub: slub-specific propagation changes Glauber Costa
2012-11-01 12:07 ` Glauber Costa
2012-11-06 19:25 ` Andrew Morton
2012-11-06 19:25 ` Andrew Morton
2012-11-07 15:53 ` Sasha Levin
2012-11-07 15:53 ` Sasha Levin
2012-11-08 6:51 ` Glauber Costa [this message]
2012-11-08 6:51 ` Glauber Costa
2012-11-09 3:37 ` Sasha Levin
2012-11-09 3:37 ` Sasha Levin
2012-11-14 12:06 ` Glauber Costa
2012-11-14 12:06 ` Glauber Costa
2012-11-01 12:07 ` [PATCH v6 29/29] Add slab-specific documentation about the kmem controller Glauber Costa
2012-11-01 12:07 ` Glauber Costa
2012-11-02 0:04 ` [PATCH v6 00/29] kmem controller for memcg Andrew Morton
2012-11-02 0:04 ` Andrew Morton
2012-11-02 7:41 ` Glauber Costa
2012-11-02 7:41 ` Glauber Costa
2012-11-02 19:25 ` JoonSoo Kim
2012-11-02 19:25 ` JoonSoo Kim
2012-11-02 23:06 ` Tejun Heo
2012-11-02 23:06 ` Tejun Heo
2012-11-05 8:14 ` Glauber Costa
2012-11-05 8:14 ` Glauber Costa
2012-11-05 8:18 ` Glauber Costa
2012-11-05 8:18 ` Glauber Costa
2012-11-03 3:36 ` Greg Thelen
2012-11-03 3:36 ` Greg Thelen
2012-11-02 8:30 ` Pekka Enberg
2012-11-02 8:30 ` Pekka Enberg
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=509B5673.8020801@parallels.com \
--to=glommer@parallels.com \
--cc=akpm@linux-foundation.org \
--cc=cl@linux.com \
--cc=davej@redhat.com \
--cc=hannes@cmpxchg.org \
--cc=kamezawa.hiroyu@jp.fujitsu.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mhocko@suse.cz \
--cc=penberg@cs.helsinki.fi \
--cc=penberg@kernel.org \
--cc=rientjes@google.com \
--cc=sasha.levin@oracle.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.