Skip to content

Commit a4106ea

Browse files
committed
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>
1 parent 299a180 commit a4106ea

File tree

6 files changed

+539
-526
lines changed

6 files changed

+539
-526
lines changed

arch/x86/include/asm/numa.h

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,16 @@
99
#ifdef CONFIG_NUMA
1010

1111
#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;
1222

1323
/*
1424
* __apicid_to_node[] stores the raw mapping between physical apicid and
@@ -68,4 +78,10 @@ static inline void numa_remove_cpu(int cpu) { }
6878
void debug_cpumask_set_cpu(int cpu, int node, bool enable);
6979
#endif
7080

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+
7187
#endif /* _ASM_X86_NUMA_H */

arch/x86/include/asm/numa_32.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
#ifndef _ASM_X86_NUMA_32_H
22
#define _ASM_X86_NUMA_32_H
33

4-
extern int numa_off;
5-
64
#ifdef CONFIG_HIGHMEM
75
extern void set_highmem_pages_init(void);
86
#else

arch/x86/include/asm/numa_64.h

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,6 @@
11
#ifndef _ASM_X86_NUMA_64_H
22
#define _ASM_X86_NUMA_64_H
33

4-
#define ZONE_ALIGN (1UL << (MAX_ORDER+PAGE_SHIFT))
5-
6-
extern int numa_off;
7-
84
extern unsigned long numa_free_all_bootmem(void);
95

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-
256
#endif /* _ASM_X86_NUMA_64_H */

0 commit comments

Comments
 (0)