diff options
author | Dave Hansen <haveblue@us.ibm.com> | 2005-06-23 03:07:39 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-06-23 12:45:01 -0400 |
commit | 6f167ec721108c9282d54424516a12c805e3c306 (patch) | |
tree | f7094a2524611ede76b32e4cc3c07987b7b0e275 /include/linux/bootmem.h | |
parent | c2ebaa425e6630adcbf757b004d257dd4204925b (diff) |
[PATCH] sparsemem base: simple NUMA remap space allocator
Introduce a simple allocator for the NUMA remap space. This space is very
scarce, used for structures which are best allocated node local.
This mechanism is also used on non-NUMA ia64 systems with a vmem_map to keep
the pgdat->node_mem_map initialized in a consistent place for all
architectures.
Issues:
o alloc_remap takes a node_id where we might expect a pgdat which was intended
to allow us to allocate the pgdat's using this mechanism; which we do not yet
do. Could have alloc_remap_node() and alloc_remap_nid() for this purpose.
Signed-off-by: Andy Whitcroft <apw@shadowen.org>
Signed-off-by: Dave Hansen <haveblue@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include/linux/bootmem.h')
-rw-r--r-- | include/linux/bootmem.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/include/linux/bootmem.h b/include/linux/bootmem.h index 0dd8ca1a3d5a..500f451ce0c0 100644 --- a/include/linux/bootmem.h +++ b/include/linux/bootmem.h | |||
@@ -67,6 +67,15 @@ extern void * __init __alloc_bootmem_node (pg_data_t *pgdat, unsigned long size, | |||
67 | __alloc_bootmem_node((pgdat), (x), PAGE_SIZE, 0) | 67 | __alloc_bootmem_node((pgdat), (x), PAGE_SIZE, 0) |
68 | #endif /* !CONFIG_HAVE_ARCH_BOOTMEM_NODE */ | 68 | #endif /* !CONFIG_HAVE_ARCH_BOOTMEM_NODE */ |
69 | 69 | ||
70 | #ifdef CONFIG_HAVE_ARCH_ALLOC_REMAP | ||
71 | extern void *alloc_remap(int nid, unsigned long size); | ||
72 | #else | ||
73 | static inline void *alloc_remap(int nid, unsigned long size) | ||
74 | { | ||
75 | return NULL; | ||
76 | } | ||
77 | #endif | ||
78 | |||
70 | extern unsigned long __initdata nr_kernel_pages; | 79 | extern unsigned long __initdata nr_kernel_pages; |
71 | extern unsigned long __initdata nr_all_pages; | 80 | extern unsigned long __initdata nr_all_pages; |
72 | 81 | ||