summaryrefslogtreecommitdiff
path: root/init
diff options
context:
space:
mode:
authorAndi Kleen <andi@firstfloor.org>2008-02-23 15:24:02 -0800
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2008-02-23 17:12:16 -0800
commit0835ab53eab5bbeebe1c135e92fb0c4d483dde17 (patch)
tree037ce3a4885d46cfba34a4265bead1d081d2814b /init
parent00d6296145c6b671a9886e380efc24f2731d856a (diff)
downloadlwn-0835ab53eab5bbeebe1c135e92fb0c4d483dde17.tar.gz
lwn-0835ab53eab5bbeebe1c135e92fb0c4d483dde17.zip
cgroup memory controller: document huge memory/cache overhead in Kconfig
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 this. 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 <ak@suse.de> Cc: Balbir Singh <balbir@in.ibm.com> Acked-by: Paul Menage <menage@google.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'init')
-rw-r--r--init/Kconfig8
1 files changed, 8 insertions, 0 deletions
diff --git a/init/Kconfig b/init/Kconfig
index dcef8b55011a..f698a5af5007 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -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.
+
config PROC_PID_CPUSET
bool "Include legacy /proc/<pid>/cpuset file"
depends on CPUSETS