diff options
| author | Martin J. Bligh <mbligh@aracnet.com> | 2004-06-26 21:00:45 -0700 |
|---|---|---|
| committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2004-06-26 21:00:45 -0700 |
| commit | 9278aa3910c86374cf7bd2e0cb1dc26838dd1f55 (patch) | |
| tree | 5003594d94e615058f035007d003ffd4e7c56beb /include | |
| parent | 4736ba03c29ab2e7764e1aed9858de823f69d2ad (diff) | |
[PATCH] fix NUMA boundaray between ZONE_NORMAL and HIGHMEM
From: Andy Whitcroft <apw@shadowen.org>
This patch eliminates the false hole which can form between ZONE_NORMAL and
ZONE_HIGHMEM. This is most easily seen when 4g/4g split is enabled, but
it's always broken, and we just happen not to hit it most of the time.
Basically, the patch changes the allocation of the numa remaps regions (the
source of the holes) such that they officially fall within VMALLOC space,
where they belong.
Tested in -mjb for a couple of months, and again against 2.6.7-mm1.
Signed-off-by: Andy Whitcroft <apw@shadowen.org>
Signed-off-by: Martin J. Bligh <mbligh@aracnet.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include')
| -rw-r--r-- | include/asm-i386/pgtable.h | 4 | ||||
| -rw-r--r-- | include/linux/mm.h | 1 |
2 files changed, 3 insertions, 2 deletions
diff --git a/include/asm-i386/pgtable.h b/include/asm-i386/pgtable.h index 135bd3093c32..b95fedb5b32d 100644 --- a/include/asm-i386/pgtable.h +++ b/include/asm-i386/pgtable.h @@ -83,8 +83,8 @@ void paging_init(void); * area for the same reason. ;) */ #define VMALLOC_OFFSET (8*1024*1024) -#define VMALLOC_START (((unsigned long) high_memory + 2*VMALLOC_OFFSET-1) & \ - ~(VMALLOC_OFFSET-1)) +#define VMALLOC_START (((unsigned long) high_memory + vmalloc_earlyreserve + \ + 2*VMALLOC_OFFSET-1) & ~(VMALLOC_OFFSET-1)) #ifdef CONFIG_HIGHMEM # define VMALLOC_END (PKMAP_BASE-2*PAGE_SIZE) #else diff --git a/include/linux/mm.h b/include/linux/mm.h index 8f8a8a3a31b7..0205d4cd35eb 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -23,6 +23,7 @@ extern unsigned long max_mapnr; extern unsigned long num_physpages; extern void * high_memory; +extern unsigned long vmalloc_earlyreserve; extern int page_cluster; #include <asm/page.h> |
