Re: [PATCH 09/23] kmem slab accounting basic infrastructure

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]




@@ -3951,8 +3966,26 @@ static int mem_cgroup_write(struct cgroup *cont, struct cftype *cft,
                        break;
                if (type == _MEM)
                        ret = mem_cgroup_resize_limit(memcg, val);
-               else
+               else if (type == _MEMSWAP)
                        ret = mem_cgroup_resize_memsw_limit(memcg, val);
+#ifdef CONFIG_CGROUP_MEM_RES_CTLR_KMEM
+               else if (type == _KMEM) {
+                       ret = res_counter_set_limit(&memcg->kmem, val);
+                       if (ret)
+                               break;
+                       /*
+                        * Once enabled, can't be disabled. We could in theory
+                        * disable it if we haven't yet created any caches, or
+                        * if we can shrink them all to death.
+                        *
+                        * But it is not worth the trouble
+                        */
+                       if (!memcg->kmem_accounted&&  val != RESOURCE_MAX)
+                               memcg->kmem_accounted = true;
+               }
+#endif
+               else
+                       return -EINVAL;
                break;
        case RES_SOFT_LIMIT:
                ret = res_counter_memparse_write_strategy(buffer,&val);

Why is RESOURCE_MAX special?

Because I am using the convention that setting it to any value different than that will enable accounting.
--
To unsubscribe from this list: send the line "unsubscribe cgroups" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Tools]     [DDR & Rambus]     [Asterisk Internet PBX]     [Linux API]     [Monitors]