[Devel] Re: [PATCH v4 14/14] Add documentation about the kmem controller

2012-10-11 Thread Michal Hocko
On Mon 08-10-12 14:06:20, Glauber Costa wrote: > Signed-off-by: Glauber Costa > --- > Documentation/cgroups/memory.txt | 55 > +++- > 1 file changed, 54 insertions(+), 1 deletion(-) > > diff --git a/Documentation/cgroups/memory.txt > b/Documentation/cgroups/

[Devel] Re: [PATCH v4 12/14] execute the whole memcg freeing in free_worker

2012-10-11 Thread Michal Hocko
On Mon 08-10-12 14:06:18, Glauber Costa wrote: > A lot of the initialization we do in mem_cgroup_create() is done with > softirqs enabled. This include grabbing a css id, which holds > &ss->id_lock->rlock, and the per-zone trees, which holds > rtpz->lock->rlock. All of those signal to the lockdep m

[Devel] Re: [PATCH v4 10/14] memcg: use static branches when code not in use

2012-10-11 Thread Michal Hocko
On Mon 08-10-12 14:06:16, Glauber Costa wrote: > We can use static branches to patch the code in or out when not used. > > Because the _ACTIVE bit on kmem_accounted is only set after the > increment is done, we guarantee that the root memcg will always be > selected for kmem charges until all call

[Devel] Re: [PATCH v4 04/14] kmem accounting basic infrastructure

2012-10-11 Thread Michal Hocko
On Thu 11-10-12 12:11:19, Michal Hocko wrote: > On Mon 08-10-12 14:06:10, Glauber Costa wrote: > > + 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 > dire

[Devel] Re: [PATCH v4 09/14] memcg: kmem accounting lifecycle management

2012-10-11 Thread Michal Hocko
On Mon 08-10-12 14:06:15, Glauber Costa wrote: > Because kmem charges can outlive the cgroup, we need to make sure that > we won't free the memcg structure while charges are still in flight. > For reviewing simplicity, the charge functions will issue > mem_cgroup_get() at every charge, and mem_cgro

[Devel] Re: [PATCH v4 06/14] memcg: kmem controller infrastructure

2012-10-11 Thread Michal Hocko
On Thu 11-10-12 14:42:12, Michal Hocko wrote: [...] > /* >* Keep reference on memcg while the page is charged to prevent >* group from vanishing because allocation can outlive their >* tasks. The reference is dropped in __memcg_kmem_uncharge_page >*/ > > pleas

[Devel] Re: [PATCH v4 04/14] kmem accounting basic infrastructure

2012-10-11 Thread Michal Hocko
On Thu 11-10-12 12:11:19, Michal Hocko wrote: > On Mon 08-10-12 14:06:10, Glauber Costa wrote: [...] > > +static void memcg_kmem_set_active(struct mem_cgroup *memcg) > > +{ > > + set_bit(KMEM_ACCOUNTED_ACTIVE, &memcg->kmem_accounted); > > +} > > + > > +static bool memcg_kmem_is_accounted(struct m

[Devel] Re: [PATCH v4 06/14] memcg: kmem controller infrastructure

2012-10-11 Thread Michal Hocko
On Mon 08-10-12 14:06:12, Glauber Costa wrote: > This patch introduces infrastructure for tracking kernel memory pages to > a given memcg. This will happen whenever the caller includes the flag > __GFP_KMEMCG flag, and the task belong to a memcg other than the root. > > In memcontrol.h those funct

[Devel] Re: [PATCH v4 04/14] kmem accounting basic infrastructure

2012-10-11 Thread Michal Hocko
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