c898faf91b
Extend the maximum addressable memory on x86-64 from 2^44 to 2^46 bytes. This requires some shuffling around of the vmalloc and virtual memmap memory areas, to keep them away from the direct mapping of up to 64TB of physical memory. This patch also introduces a guard hole between the vmalloc area and the virtual memory map space. There's really no good reason why we wouldn't have a guard hole there. [ Impact: future hardware enablement ] Signed-off-by: Rik van Riel <riel@redhat.com> LKML-Reference: <20090505172856.6820db22@cuia.bos.redhat.com> Signed-off-by: H. Peter Anvin <hpa@zytor.com>
35 lines
895 B
C
35 lines
895 B
C
#ifndef _ASM_X86_SPARSEMEM_H
|
|
#define _ASM_X86_SPARSEMEM_H
|
|
|
|
#ifdef CONFIG_SPARSEMEM
|
|
/*
|
|
* generic non-linear memory support:
|
|
*
|
|
* 1) we will not split memory into more chunks than will fit into the flags
|
|
* field of the struct page
|
|
*
|
|
* SECTION_SIZE_BITS 2^n: size of each section
|
|
* MAX_PHYSADDR_BITS 2^n: max size of physical address space
|
|
* MAX_PHYSMEM_BITS 2^n: how much memory we can have in that space
|
|
*
|
|
*/
|
|
|
|
#ifdef CONFIG_X86_32
|
|
# ifdef CONFIG_X86_PAE
|
|
# define SECTION_SIZE_BITS 29
|
|
# define MAX_PHYSADDR_BITS 36
|
|
# define MAX_PHYSMEM_BITS 36
|
|
# else
|
|
# define SECTION_SIZE_BITS 26
|
|
# define MAX_PHYSADDR_BITS 32
|
|
# define MAX_PHYSMEM_BITS 32
|
|
# endif
|
|
#else /* CONFIG_X86_32 */
|
|
# define SECTION_SIZE_BITS 27 /* matt - 128 is convenient right now */
|
|
# define MAX_PHYSADDR_BITS 44
|
|
# define MAX_PHYSMEM_BITS 46
|
|
#endif
|
|
|
|
#endif /* CONFIG_SPARSEMEM */
|
|
#endif /* _ASM_X86_SPARSEMEM_H */
|