Re: [PATCH] Document huge memory/cache overhead of memory controllerin Kconfig

From: Balbir Singh
Date: Wed Feb 20 2008 - 08:00:56 EST


Andi Kleen wrote:
> 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.

The size of struct page earlier was 56 bytes on x86_64 and with 64 bytes it
won't fit into the cacheline anymore? Please also look at
http://lwn.net/Articles/234974/

> 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.
>
> Cc: balbir@xxxxxxxxxxxxxxxxxx
>
> Signed-off-by: Andi Kleen <ak@xxxxxxx>
>
> Index: linux/init/Kconfig
> ===================================================================
> --- linux.orig/init/Kconfig
> +++ linux/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.
> +

Looks good

Acked-by: Balbir Singh <balbir@xxxxxxxxxxxxxxxxxx>

> config PROC_PID_CPUSET
> bool "Include legacy /proc/<pid>/cpuset file"
> depends on CPUSETS


--
Warm Regards,
Balbir Singh
Linux Technology Center
IBM, ISTL
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/