From: Andi Kleen Date: Sat, 23 Feb 2008 23:24:02 +0000 (-0800) Subject: cgroup memory controller: document huge memory/cache overhead in Kconfig X-Git-Tag: v2.6.25-rc3~29 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0835ab53eab5bbeebe1c135e92fb0c4d483dde17;p=linux-2.6 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 Cc: Balbir Singh Acked-by: Paul Menage Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- diff --git a/init/Kconfig b/init/Kconfig index dcef8b5501..f698a5af50 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//cpuset file" depends on CPUSETS