Re: [RFC PATCH] mm: memcg/slab: Stop reparented obj_cgroups from charging root

From: Richard Palethorpe
Date: Tue Oct 20 2020 - 08:02:44 EST


Hello,

Richard Palethorpe <rpalethorpe@xxxxxxx> writes:

> Hello Roman,
>
> Roman Gushchin <guro@xxxxxx> writes:
>
>> - page_counter_init(&memcg->memory, NULL);
>> - page_counter_init(&memcg->swap, NULL);
>> - page_counter_init(&memcg->kmem, NULL);
>> - page_counter_init(&memcg->tcpmem, NULL);
>> + /*
>> + * If use_hierarchy == false, consider all page counters direct
>> + * descendants of the corresponding root level counters.
>> + */
>> + page_counter_init(&memcg->memory, &root_mem_cgroup->memory);
>> + page_counter_init(&memcg->swap, &root_mem_cgroup->swap);
>> + page_counter_init(&memcg->kmem, &root_mem_cgroup->kmem);
>> + page_counter_init(&memcg->tcpmem, &root_mem_cgroup->tcpmem);
>> +
>> /*
>> * Deeper hierachy with use_hierarchy == false doesn't make
>> * much sense so let cgroup subsystem know about this
>
> Perhaps in this case, where the hierarchy is broken, objcgs should also
> be reparented directly to root? Otherwise it will still be possible to
> underflow the counter in a descendant of root which has use_hierarchy=0,
> but also has children.

Sorry ignore me, parent_mem_cgroup already selects root. So in the case
of a broken hierarchy objcgs are reparented directly to root.

--
Thank you,
Richard.