diff options
author | Andi Kleen <andi@firstfloor.org> | 2008-02-23 15:24:02 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2008-02-23 17:12:16 -0800 |
commit | 0835ab53eab5bbeebe1c135e92fb0c4d483dde17 (patch) | |
tree | 037ce3a4885d46cfba34a4265bead1d081d2814b /init | |
parent | 00d6296145c6b671a9886e380efc24f2731d856a (diff) | |
download | lwn-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/Kconfig | 8 |
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 |