diff options
author | Zachary Amsden <zach@vmware.com> | 2006-09-26 02:32:25 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-09-26 11:48:55 -0400 |
commit | 461a9afff5e731d6337c0f5b08a1e727ccd57e0a (patch) | |
tree | 2bd69049bb1c3e8eac7ccd753bf8f253a9ac19b6 /arch/i386/kernel/setup.c | |
parent | 052e79941a042e5be4feffa03b1fd60d93fb9e9a (diff) |
[PATCH] x86: add a bootparameter to reserve high linear address space
Add a boot parameter to reserve high linear address space for hypervisors.
This is necessary to allow dynamically loaded hypervisor modules, which might
not happen until userspace is already running, and also provides a useful tool
to benchmark the performance impact of reduced lowmem address space.
Signed-off-by: Zachary Amsden <zach@vmware.com>
Signed-off-by: Chris Wright <chrisw@sous-sol.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch/i386/kernel/setup.c')
-rw-r--r-- | arch/i386/kernel/setup.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/arch/i386/kernel/setup.c b/arch/i386/kernel/setup.c index 060c68004bec..16d99444cf66 100644 --- a/arch/i386/kernel/setup.c +++ b/arch/i386/kernel/setup.c | |||
@@ -935,6 +935,24 @@ static void __init parse_cmdline_early (char ** cmdline_p) | |||
935 | } | 935 | } |
936 | 936 | ||
937 | /* | 937 | /* |
938 | * reservetop=size reserves a hole at the top of the kernel address space which | ||
939 | * a hypervisor can load into later. Needed for dynamically loaded hypervisors, | ||
940 | * so relocating the fixmap can be done before paging initialization. | ||
941 | */ | ||
942 | static int __init parse_reservetop(char *arg) | ||
943 | { | ||
944 | unsigned long address; | ||
945 | |||
946 | if (!arg) | ||
947 | return -EINVAL; | ||
948 | |||
949 | address = memparse(arg, &arg); | ||
950 | reserve_top_address(address); | ||
951 | return 0; | ||
952 | } | ||
953 | early_param("reservetop", parse_reservetop); | ||
954 | |||
955 | /* | ||
938 | * Callback for efi_memory_walk. | 956 | * Callback for efi_memory_walk. |
939 | */ | 957 | */ |
940 | static int __init | 958 | static int __init |