Configurable NUMA node memory size
Hi,
following the requests from Xavier and Jesse I introduced a configuration parameter for the maximum memory per NUMA node. The DIG_BANKSHIFT is set accordingly, the current choices are:
512MB/bank: 16GB/node,
2048MB/bank: 64GB/node,
8192MB/bank: 256GB/node.The patch is for 2.5.50+ia64. Please consider applying it.
Thanks,
Erich
arch/ia64/Kconfig +17 -0
@@ -220,6 +220,23 @@ config NUMA Access). This option is for configuring high-end multiprocessor server systems. If in doubt, say N. +choice + prompt "Maximum Memory per NUMA Node" if NUMA && IA64_DIG + depends on NUMA && IA64_DIG + default IA64_NODESIZE_16GB + +config IA64_NODESIZE_16GB + bool "16GB" + +config IA64_NODESIZE_64GB + bool "64GB" + +config IA64_NODESIZE_256GB + bool "256GB" + +endchoice + + config VIRTUAL_MEM_MAP bool "Enable Virtual Mem Map" if IA64_GENERIC || IA64_DIG depends on !NUMA
include/asm-ia64/mmzone.h +13 -3
@@ -104,12 +104,22 @@ extern unsigned long max_low_pfn;/* * Bank definitions. -* Current settings for DIG: 512MB/bank, 16GB/node. +* Configurable settings for DIG: 512MB/bank: 16GB/node, +* 2048MB/bank: 64GB/node, +* 8192MB/bank: 256GB/node. */ #define NR_BANKS_PER_NODE 32 -#define BANK_OFFSET (addr) ((unsigned long)(addr) & (BANKSIZE-1)) -#define DIG_BANKSHIFT 29 +#if defined(CONFIG_IA64_NODESIZE_16GB ) +# define DIG_BANKSHIFT 29 +#elif defined(CONFIG_IA64_NODESIZE_64GB ) +# define DIG_BANKSHIFT 31 +#elif defined(CONFIG_IA64_NODESIZE_256GB ) +# define DIG_BANKSHIFT 33 +#else +# error Unsupported bank and nodesize! +#endif #define BANKSIZE (1UL << DIG_BANKSHIFT) +#define BANK_OFFSET (addr) ((unsigned long)(addr) & (BANKSIZE-1))#define NR_BANKS (NR_BANKS_PER_NODE * NR_NODES)/*