chiark / gitweb /
cgroup: always enable memory.use_hierarchy= for all cgroups in the memory hierarchy
authorLennart Poettering <lennart@poettering.net>
Mon, 23 Sep 2013 21:02:31 +0000 (16:02 -0500)
committerLennart Poettering <lennart@poettering.net>
Mon, 23 Sep 2013 21:02:31 +0000 (16:02 -0500)
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.

src/core/cgroup.c

index d10f205..e66b8f4 100644 (file)
@@ -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;
 }