diff options
author | David Rientjes <rientjes@google.com> | 2010-02-15 13:43:30 -0800 |
---|---|---|
committer | H. Peter Anvin <hpa@zytor.com> | 2010-02-15 14:34:10 -0800 |
commit | 8df5bb34defd685fe86f60746bbf3d47d1c6f033 (patch) | |
tree | f2561781a9e493b297a3872b03ff6e4a23a5576c /arch/x86/include/asm/numa_64.h | |
parent | 68fd111e02b979876359c7b471a8bcbca0628b75 (diff) | |
download | kernel_samsung_crespo-8df5bb34defd685fe86f60746bbf3d47d1c6f033.zip kernel_samsung_crespo-8df5bb34defd685fe86f60746bbf3d47d1c6f033.tar.gz kernel_samsung_crespo-8df5bb34defd685fe86f60746bbf3d47d1c6f033.tar.bz2 |
x86, numa: Add fixed node size option for numa emulation
numa=fake=N specifies the number of fake nodes, N, to partition the
system into and then allocates them by interleaving over physical nodes.
This requires knowledge of the system capacity when attempting to
allocate nodes of a certain size: either very large nodes to benchmark
scalability of code that operates on individual nodes, or very small
nodes to find bugs in the VM.
This patch introduces numa=fake=<size>[MG] so it is possible to specify
the size of each node to allocate. When used, nodes of the size
specified will be allocated and interleaved over the set of physical
nodes.
FAKE_NODE_MIN_SIZE was also moved to the more-appropriate
include/asm/numa_64.h.
Signed-off-by: David Rientjes <rientjes@google.com>
LKML-Reference: <alpine.DEB.2.00.1002151342510.26927@chino.kir.corp.google.com>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Diffstat (limited to 'arch/x86/include/asm/numa_64.h')
-rw-r--r-- | arch/x86/include/asm/numa_64.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/arch/x86/include/asm/numa_64.h b/arch/x86/include/asm/numa_64.h index c4ae822..823e070 100644 --- a/arch/x86/include/asm/numa_64.h +++ b/arch/x86/include/asm/numa_64.h @@ -36,6 +36,11 @@ extern void __cpuinit numa_set_node(int cpu, int node); extern void __cpuinit numa_clear_node(int cpu); extern void __cpuinit numa_add_cpu(int cpu); extern void __cpuinit numa_remove_cpu(int cpu); + +#ifdef CONFIG_NUMA_EMU +#define FAKE_NODE_MIN_SIZE ((u64)64 << 20) +#define FAKE_NODE_MIN_HASH_MASK (~(FAKE_NODE_MIN_SIZE - 1UL)) +#endif /* CONFIG_NUMA_EMU */ #else static inline void init_cpu_to_node(void) { } static inline void numa_set_node(int cpu, int node) { } |