Since the root is special anyway, and we always get its figures from global counters anyway, there is no make all cgroups its descendants, wrt res_counters. The sad effect of doing that is that we need to lock the root for all allocations, since it is a common ancestor of everybody. Not having the root as a common ancestor should lead to better scalability for not-uncommon case of tasks in the cgroup being node-bound to different nodes in NUMA systems. Signed-off-by: Glauber Costa <glommer@xxxxxxxxxxxxx> CC: Michal Hocko <mhocko@xxxxxxx> CC: Kamezawa Hiroyuki <kamezawa.hiroyu@xxxxxxxxxxxxxx> CC: Johannes Weiner <hannes@xxxxxxxxxxx> CC: Mel Gorman <mgorman@xxxxxxx> CC: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- mm/memcontrol.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mm/memcontrol.c b/mm/memcontrol.c index f8115f0..829ea9e 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -5720,7 +5720,7 @@ mem_cgroup_create(struct cgroup *cont) static_key_slow_inc(&memcg_in_use_key); } - if (parent && parent->use_hierarchy) { + if (parent && !mem_cgroup_is_root(parent) && parent->use_hierarchy) { struct mem_cgroup __maybe_unused *p; res_counter_init(&memcg->res, &parent->res); -- 1.7.11.4 -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>