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@vmware.com>
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>