Rev 6588 | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
6588 | serge | 1 | #ifndef _ASM_X86_NUMA_H |
2 | #define _ASM_X86_NUMA_H |
||
3 | |||
4 | #include |
||
5 | |||
6 | #include |
||
7 | #include |
||
8 | |||
9 | #ifdef CONFIG_NUMA |
||
10 | |||
11 | #define NR_NODE_MEMBLKS (MAX_NUMNODES*2) |
||
12 | |||
13 | /* |
||
14 | * Too small node sizes may confuse the VM badly. Usually they |
||
15 | * result from BIOS bugs. So dont recognize nodes as standalone |
||
16 | * NUMA entities that have less than this amount of RAM listed: |
||
17 | */ |
||
18 | #define NODE_MIN_SIZE (4*1024*1024) |
||
19 | |||
20 | extern int numa_off; |
||
21 | |||
22 | /* |
||
23 | * __apicid_to_node[] stores the raw mapping between physical apicid and |
||
24 | * node and is used to initialize cpu_to_node mapping. |
||
25 | * |
||
26 | * The mapping may be overridden by apic->numa_cpu_node() on 32bit and thus |
||
27 | * should be accessed by the accessors - set_apicid_to_node() and |
||
28 | * numa_cpu_node(). |
||
29 | */ |
||
30 | extern s16 __apicid_to_node[MAX_LOCAL_APIC]; |
||
31 | extern nodemask_t numa_nodes_parsed __initdata; |
||
32 | |||
33 | extern int __init numa_add_memblk(int nodeid, u64 start, u64 end); |
||
34 | extern void __init numa_set_distance(int from, int to, int distance); |
||
35 | |||
36 | static inline void set_apicid_to_node(int apicid, s16 node) |
||
37 | { |
||
38 | __apicid_to_node[apicid] = node; |
||
39 | } |
||
40 | |||
41 | extern int numa_cpu_node(int cpu); |
||
42 | |||
43 | #else /* CONFIG_NUMA */ |
||
44 | static inline void set_apicid_to_node(int apicid, s16 node) |
||
45 | { |
||
46 | } |
||
47 | |||
48 | static inline int numa_cpu_node(int cpu) |
||
49 | { |
||
50 | return NUMA_NO_NODE; |
||
51 | } |
||
52 | #endif /* CONFIG_NUMA */ |
||
53 | |||
54 | #ifdef CONFIG_X86_32 |
||
55 | # include |
||
56 | #endif |
||
57 | |||
58 | #ifdef CONFIG_NUMA |
||
59 | extern void numa_set_node(int cpu, int node); |
||
60 | extern void numa_clear_node(int cpu); |
||
61 | extern void __init init_cpu_to_node(void); |
||
62 | extern void numa_add_cpu(int cpu); |
||
63 | extern void numa_remove_cpu(int cpu); |
||
64 | #else /* CONFIG_NUMA */ |
||
65 | static inline void numa_set_node(int cpu, int node) { } |
||
66 | static inline void numa_clear_node(int cpu) { } |
||
67 | static inline void init_cpu_to_node(void) { } |
||
68 | static inline void numa_add_cpu(int cpu) { } |
||
69 | static inline void numa_remove_cpu(int cpu) { } |
||
70 | #endif /* CONFIG_NUMA */ |
||
71 | |||
72 | #ifdef CONFIG_DEBUG_PER_CPU_MAPS |
||
73 | void debug_cpumask_set_cpu(int cpu, int node, bool enable); |
||
74 | #endif |
||
75 | |||
76 | #ifdef CONFIG_NUMA_EMU |
||
77 | #define FAKE_NODE_MIN_SIZE ((u64)32 << 20) |
||
78 | #define FAKE_NODE_MIN_HASH_MASK (~(FAKE_NODE_MIN_SIZE - 1UL)) |
||
79 | void numa_emu_cmdline(char *); |
||
80 | #endif /* CONFIG_NUMA_EMU */ |
||
81 | |||
82 | #endif /* _ASM_X86_NUMA_H */><> |