diff options
author | Tejun Heo <tj@kernel.org> | 2011-05-02 08:18:53 -0400 |
---|---|---|
committer | Tejun Heo <tj@kernel.org> | 2011-05-02 08:18:53 -0400 |
commit | a4106eae650a4d5d30fcdd36d998edfa5ccb0ec4 (patch) | |
tree | 29da18fc58ff99a9427d5047936e71dad1ac40dd /arch/x86/include/asm | |
parent | 299a180aec6a8ee3069cf0fe90d722ac20c1f837 (diff) |
x86, NUMA: Move NUMA init logic from numa_64.c to numa.c
Move the generic 64bit NUMA init machinery from numa_64.c to numa.c.
* node_data[], numa_mem_info and numa_distance
* numa_add_memblk[_to](), numa_remove_memblk[_from]()
* numa_set_distance() and friends
* numa_init() and all the numa_meminfo handling helpers called from it
* dummy_numa_init()
* memory_add_physaddr_to_nid()
A new function x86_numa_init() is added and the content of
numa_64.c::initmem_init() is moved into it. initmem_init() now simply
calls x86_numa_init().
Constants and numa_off declaration are moved from numa_{32|64}.h to
numa.h.
This is code reorganization and doesn't involve any functional change.
Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Yinghai Lu <yinghai@kernel.org>
Cc: David Rientjes <rientjes@google.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Diffstat (limited to 'arch/x86/include/asm')
-rw-r--r-- | arch/x86/include/asm/numa.h | 16 | ||||
-rw-r--r-- | arch/x86/include/asm/numa_32.h | 2 | ||||
-rw-r--r-- | arch/x86/include/asm/numa_64.h | 19 |
3 files changed, 16 insertions, 21 deletions
diff --git a/arch/x86/include/asm/numa.h b/arch/x86/include/asm/numa.h index db449c7d89b3..74540865dd83 100644 --- a/arch/x86/include/asm/numa.h +++ b/arch/x86/include/asm/numa.h | |||
@@ -9,6 +9,16 @@ | |||
9 | #ifdef CONFIG_NUMA | 9 | #ifdef CONFIG_NUMA |
10 | 10 | ||
11 | #define NR_NODE_MEMBLKS (MAX_NUMNODES*2) | 11 | #define NR_NODE_MEMBLKS (MAX_NUMNODES*2) |
12 | #define ZONE_ALIGN (1UL << (MAX_ORDER+PAGE_SHIFT)) | ||
13 | |||
14 | /* | ||
15 | * Too small node sizes may confuse the VM badly. Usually they | ||
16 | * result from BIOS bugs. So dont recognize nodes as standalone | ||
17 | * NUMA entities that have less than this amount of RAM listed: | ||
18 | */ | ||
19 | #define NODE_MIN_SIZE (4*1024*1024) | ||
20 | |||
21 | extern int numa_off; | ||
12 | 22 | ||
13 | /* | 23 | /* |
14 | * __apicid_to_node[] stores the raw mapping between physical apicid and | 24 | * __apicid_to_node[] stores the raw mapping between physical apicid and |
@@ -68,4 +78,10 @@ static inline void numa_remove_cpu(int cpu) { } | |||
68 | void debug_cpumask_set_cpu(int cpu, int node, bool enable); | 78 | void debug_cpumask_set_cpu(int cpu, int node, bool enable); |
69 | #endif | 79 | #endif |
70 | 80 | ||
81 | #ifdef CONFIG_NUMA_EMU | ||
82 | #define FAKE_NODE_MIN_SIZE ((u64)32 << 20) | ||
83 | #define FAKE_NODE_MIN_HASH_MASK (~(FAKE_NODE_MIN_SIZE - 1UL)) | ||
84 | void numa_emu_cmdline(char *); | ||
85 | #endif /* CONFIG_NUMA_EMU */ | ||
86 | |||
71 | #endif /* _ASM_X86_NUMA_H */ | 87 | #endif /* _ASM_X86_NUMA_H */ |
diff --git a/arch/x86/include/asm/numa_32.h b/arch/x86/include/asm/numa_32.h index 7e54b64623a9..e7d6b8254742 100644 --- a/arch/x86/include/asm/numa_32.h +++ b/arch/x86/include/asm/numa_32.h | |||
@@ -1,8 +1,6 @@ | |||
1 | #ifndef _ASM_X86_NUMA_32_H | 1 | #ifndef _ASM_X86_NUMA_32_H |
2 | #define _ASM_X86_NUMA_32_H | 2 | #define _ASM_X86_NUMA_32_H |
3 | 3 | ||
4 | extern int numa_off; | ||
5 | |||
6 | #ifdef CONFIG_HIGHMEM | 4 | #ifdef CONFIG_HIGHMEM |
7 | extern void set_highmem_pages_init(void); | 5 | extern void set_highmem_pages_init(void); |
8 | #else | 6 | #else |
diff --git a/arch/x86/include/asm/numa_64.h b/arch/x86/include/asm/numa_64.h index 506dd050ff30..0c05f7ae46e8 100644 --- a/arch/x86/include/asm/numa_64.h +++ b/arch/x86/include/asm/numa_64.h | |||
@@ -1,25 +1,6 @@ | |||
1 | #ifndef _ASM_X86_NUMA_64_H | 1 | #ifndef _ASM_X86_NUMA_64_H |
2 | #define _ASM_X86_NUMA_64_H | 2 | #define _ASM_X86_NUMA_64_H |
3 | 3 | ||
4 | #define ZONE_ALIGN (1UL << (MAX_ORDER+PAGE_SHIFT)) | ||
5 | |||
6 | extern int numa_off; | ||
7 | |||
8 | extern unsigned long numa_free_all_bootmem(void); | 4 | extern unsigned long numa_free_all_bootmem(void); |
9 | 5 | ||
10 | #ifdef CONFIG_NUMA | ||
11 | /* | ||
12 | * Too small node sizes may confuse the VM badly. Usually they | ||
13 | * result from BIOS bugs. So dont recognize nodes as standalone | ||
14 | * NUMA entities that have less than this amount of RAM listed: | ||
15 | */ | ||
16 | #define NODE_MIN_SIZE (4*1024*1024) | ||
17 | |||
18 | #ifdef CONFIG_NUMA_EMU | ||
19 | #define FAKE_NODE_MIN_SIZE ((u64)32 << 20) | ||
20 | #define FAKE_NODE_MIN_HASH_MASK (~(FAKE_NODE_MIN_SIZE - 1UL)) | ||
21 | void numa_emu_cmdline(char *); | ||
22 | #endif /* CONFIG_NUMA_EMU */ | ||
23 | #endif | ||
24 | |||
25 | #endif /* _ASM_X86_NUMA_64_H */ | 6 | #endif /* _ASM_X86_NUMA_64_H */ |