From: Lennart Poettering Date: Mon, 23 Sep 2013 21:02:31 +0000 (-0500) Subject: cgroup: always enable memory.use_hierarchy= for all cgroups in the memory hierarchy X-Git-Tag: v208~64 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;ds=sidebyside;h=e58cec11e6735583c0de7cba68fb68f669472305;hp=a0f708053ba42c8289caed1107f498bbf332e204;p=elogind.git cgroup: always enable memory.use_hierarchy= for all cgroups in the memory hierarchy The non-hierarchial mode contradicts the whole idea of a cgroup tree so let's not support this. In the future the kernel will only support the hierarchial logic anyway. --- diff --git a/src/core/cgroup.c b/src/core/cgroup.c index d10f205a2..e66b8f485 100644 --- a/src/core/cgroup.c +++ b/src/core/cgroup.c @@ -254,8 +254,9 @@ void cgroup_context_apply(CGroupContext *c, CGroupControllerMask mask, const cha } if (mask & CGROUP_MEMORY) { - char buf[DECIMAL_STR_MAX(uint64_t) + 1]; if (c->memory_limit != (uint64_t) -1) { + char buf[DECIMAL_STR_MAX(uint64_t) + 1]; + sprintf(buf, "%" PRIu64 "\n", c->memory_limit); r = cg_set_attribute("memory", path, "memory.limit_in_bytes", buf); } else @@ -666,6 +667,9 @@ int manager_setup_cgroup(Manager *m) { /* 6. Figure out which controllers are supported */ m->cgroup_supported = cg_mask_supported(); + /* 7. Always enable hierarchial support if it exists... */ + cg_set_attribute("memory", "/", "memory.use_hierarchy", "1"); + return 0; }