Create a configurable hole in the linear address space at the top of memory. A more advanced interface is needed to negotiate how much space the hypervisor is allowed to steal, but in the end, it seems most likely that a fixed constant size will be chosen for the compiled kernel, potentially propagated to an information page used by paravirtual initialization to determine interface compatibility. Signed-off-by: Zachary Amsden <zach@xxxxxxxxxx> Index: linux-2.6.16-rc3/arch/i386/Kconfig =================================================================== --- linux-2.6.16-rc3.orig/arch/i386/Kconfig 2006-02-22 16:09:04.000000000 -0800 +++ linux-2.6.16-rc3/arch/i386/Kconfig 2006-02-22 16:33:27.000000000 -0800 @@ -201,6 +201,15 @@ config VMI_DEBUG endmenu +config MEMORY_HOLE + int "Create hole at top of memory (0-256 MB)" + range 0 256 + default "64" if X86_VMI + default "0" if !X86_VMI + help + Useful for creating a hole in the top of memory when running + inside of a virtual machine monitor. + config ACPI_SRAT bool default y Index: linux-2.6.16-rc3/include/asm-i386/fixmap.h =================================================================== --- linux-2.6.16-rc3.orig/include/asm-i386/fixmap.h 2006-02-22 15:48:23.000000000 -0800 +++ linux-2.6.16-rc3/include/asm-i386/fixmap.h 2006-02-22 16:33:27.000000000 -0800 @@ -20,7 +20,7 @@ * Leave one empty page between vmalloc'ed areas and * the start of the fixmap. */ -#define __FIXADDR_TOP 0xfffff000 +#define __FIXADDR_TOP 0xfffff000-(CONFIG_MEMORY_HOLE << 20) #ifndef __ASSEMBLY__ #include <linux/kernel.h>