From: Zachary Amsden Subject: Re: [patch 7/8] Add a bootparameter to reserve high linear address space. Date: Thu, 03 Aug 2006 00:33:10 -0700 Message-ID: <44D1A6B6.8040003@vmware.com> References: <20060803002510.634721860@xensource.com> <20060803002518.595166293@xensource.com> <20060802231912.ed77f930.akpm@osdl.org> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <20060802231912.ed77f930.akpm@osdl.org> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Andrew Morton Cc: jeremy@goop.org, xen-devel@lists.xensource.com, Jeremy Fitzhardinge , linux-kernel@vger.kernel.org, chrisw@sous-sol.org, virtualization@lists.osdl.org List-Id: xen-devel@lists.xenproject.org Andrew Morton wrote: > On Wed, 02 Aug 2006 17:25:17 -0700 > Jeremy Fitzhardinge 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