]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blame - arch/x86/include/asm/numa_64.h
x86: Unify CPU -> NUMA node mapping between 32 and 64bit
[mirror_ubuntu-artful-kernel.git] / arch / x86 / include / asm / numa_64.h
CommitLineData
1965aae3
PA
1#ifndef _ASM_X86_NUMA_64_H
2#define _ASM_X86_NUMA_64_H
1da177e4
LT
3
4#include <linux/nodemask.h>
1da177e4 5
abe059e7 6struct bootnode {
cb046eed
JP
7 u64 start;
8 u64 end;
1da177e4
LT
9};
10
6ec6e0d9
SS
11extern int compute_hash_shift(struct bootnode *nodes, int numblks,
12 int *nodeids);
1da177e4
LT
13
14#define ZONE_ALIGN (1UL << (MAX_ORDER+PAGE_SHIFT))
15
1da177e4
LT
16extern void numa_init_array(void);
17extern int numa_off;
18
aaa64e04
TG
19extern unsigned long numa_free_all_bootmem(void);
20extern void setup_node_bootmem(int nodeid, unsigned long start,
21 unsigned long end);
22
05b3cbd8 23#ifdef CONFIG_NUMA
7c43769a
YL
24/*
25 * Too small node sizes may confuse the VM badly. Usually they
26 * result from BIOS bugs. So dont recognize nodes as standalone
27 * NUMA entities that have less than this amount of RAM listed:
28 */
29#define NODE_MIN_SIZE (4*1024*1024)
30
05b3cbd8 31extern void __init init_cpu_to_node(void);
bbc9e2f4 32extern int __cpuinit numa_cpu_node(int cpu);
23ca4bba
MT
33extern void __cpuinit numa_add_cpu(int cpu);
34extern void __cpuinit numa_remove_cpu(int cpu);
8df5bb34
DR
35
36#ifdef CONFIG_NUMA_EMU
34dc9e74 37#define FAKE_NODE_MIN_SIZE ((u64)32 << 20)
8df5bb34 38#define FAKE_NODE_MIN_HASH_MASK (~(FAKE_NODE_MIN_SIZE - 1UL))
90321602 39void numa_emu_cmdline(char *);
8df5bb34 40#endif /* CONFIG_NUMA_EMU */
05b3cbd8 41#else
23ca4bba 42static inline void init_cpu_to_node(void) { }
bbc9e2f4 43static inline int numa_cpu_node(int cpu) { return NUMA_NO_NODE; }
23ca4bba
MT
44static inline void numa_add_cpu(int cpu, int node) { }
45static inline void numa_remove_cpu(int cpu) { }
05b3cbd8 46#endif
0b07e984 47
1965aae3 48#endif /* _ASM_X86_NUMA_64_H */