Re: [patch 7/8] Add a bootparameter to reserve high linear addressspace.

From: Zachary Amsden
Date: Thu Aug 03 2006 - 03:32:19 EST


Andrew Morton wrote:
On Wed, 02 Aug 2006 17:25:17 -0700
Jeremy Fitzhardinge <jeremy@xxxxxxxxxxxxx> wrote:

+ /*
+ * 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);
+ }

I assume that this argument will normally be passed in via the hypervisor
rather than by human-entered information?

In which case, perhaps a panic would be a more appropriate response to a
non-multiple-of-4M.

Either way, rounding the number down rather than up seems wrong...

Agree on the rounding issue - but is a panic really correct? Perhaps we should not round at all.

The presumption is actually that this is human or script entered information. A runtime loaded hypervisor module has no way to tweak or toggle the boot parameters, as it hasn't yet been loaded. It could be that a human operator wants to make room for it. Giving the operator a panic is not the most friendly thing to do - logging the failure on module load is much nicer. And such a runtime loaded hypervisor must be fully virtualizing anyway, so even if the argument is wrong and doesn't give the hypervisor enough space to load, no damage is done - the operator just resets the parameter and reboots.

Zach

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/