cgroup memory controller: document huge memory/cache overhead in Kconfig
authorAndi Kleen <>
Sat, 23 Feb 2008 23:24:02 +0000 (15:24 -0800)
committerLinus Torvalds <>
Sun, 24 Feb 2008 01:12:16 +0000 (17:12 -0800)
Document huge memory/cache overhead of memory controller in Kconfig

I was a little surprised that 2.6.25-rc* increased struct page for the
memory controller.  At least on many x86-64 machines it will not fit into a
single cache line now anymore and also costs considerable amounts of RAM.
At earlier review I remembered asking for a external data structure for

It's also quite unobvious that a innocent looking Kconfig option with a
single line Kconfig description has such a negative effect.

This patch attempts to document these disadvantages at least so that users
configuring their kernel can make a informed decision.

Signed-off-by: Andi Kleen <>
Cc: Balbir Singh <>
Acked-by: Paul Menage <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>

index dcef8b55011a01db4031b821d99a3b80f44f9d99..f698a5af500791ae7158457f16c9f00df503cbbb 100644 (file)
@@ -394,6 +394,14 @@ config CGROUP_MEM_CONT
          Provides a memory controller that manages both page cache and
          RSS memory.
+         Note that setting this option increases fixed memory overhead
+         associated with each page of memory in the system by 4/8 bytes
+         and also increases cache misses because struct page on many 64bit
+         systems will not fit into a single cache line anymore.
+         Only enable when you're ok with these trade offs and really
+         sure you need the memory controller.
        bool "Include legacy /proc/<pid>/cpuset file"
        depends on CPUSETS