This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
Home Products Support Community News


[Xen-devel] [patch 7/8] Add a bootparameter to reserve high linear addre

To: akpm@xxxxxxxx
Subject: [Xen-devel] [patch 7/8] Add a bootparameter to reserve high linear address space.
From: Jeremy Fitzhardinge <jeremy@xxxxxxxxxxxxx>
Date: Wed, 02 Aug 2006 17:25:17 -0700
Cc: Zachary Amsden <zach@xxxxxxxxxx>, Jeremy Fitzhardinge <jeremy@xxxxxxxx>, xen-devel@xxxxxxxxxxxxxxxxxxx, linux-kernel@xxxxxxxxxxxxxxx, Chris Wright <chrisw@xxxxxxxxxxxx>, virtualization@xxxxxxxxxxxxxx
Delivery-date: Wed, 02 Aug 2006 17:31:29 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <20060803002510.634721860@xxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: quilt/0.45-1
Add a bootparameter 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

Signed-off-by: Zachary Amsden <zach@xxxxxxxxxx>
Signed-off-by: Chris Wright <chrisw@xxxxxxxxxxxx>

 Documentation/kernel-parameters.txt |    5 +++++
 arch/i386/kernel/setup.c            |   19 +++++++++++++++++++
 2 files changed, 24 insertions(+)

--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -1357,6 +1357,11 @@ running once the system is up.
        reserve=        [KNL,BUGS] Force the kernel to ignore some iomem area
+       reservetop=     [IA-32]
+                       Format: nn[KMG]
+                       Reserves a hole at the top of the kernel virtual
+                       address space.
        resume=         [SWSUSP]
                        Specify the partition device for software suspend
--- a/arch/i386/kernel/setup.c
+++ b/arch/i386/kernel/setup.c
@@ -160,6 +160,12 @@ static char command_line[COMMAND_LINE_SI
 static char command_line[COMMAND_LINE_SIZE];
 unsigned char __initdata boot_params[PARAM_SIZE];
+static int __init setup_reservetop(char *s)
+       return 1;
+__setup("reservetop", setup_reservetop);
 static struct resource data_resource = {
        .name   = "Kernel data",
@@ -917,6 +923,19 @@ static void __init parse_cmdline_early (
                else if (!memcmp(from, "vmalloc=", 8))
                        __VMALLOC_RESERVE = memparse(from+8, &from);
+               /*
+                * reservetop=size reserves a hole at the top of the kernel
+                * address space which a hypervisor can load into later.
+                * Needed for dynamically loaded hypervisors, so relocating
+                * the fixmap can be done before paging initialization.
+                * This hole must be a multiple of 4M.
+                */
+               else if (!memcmp(from, "reservetop=", 11)) {
+                       unsigned long reserve = memparse(from+11, &from);
+                       reserve &= ~0x3fffff;
+                       reserve_top_address(reserve);
+               }
                c = *(from++);
                if (!c)


Xen-devel mailing list

<Prev in Thread] Current Thread [Next in Thread>