From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: Re: [PATCH] x86: set dom0's default maximum reservation to the initial number of pages Date: Tue, 20 Mar 2012 19:41:39 -0400 Message-ID: <20120320234139.GA19464@phenom.dumpdata.com> References: <1332267691-13179-1-git-send-email-david.vrabel@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Content-Disposition: inline In-Reply-To: <1332267691-13179-1-git-send-email-david.vrabel@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: David Vrabel Cc: xen-devel@lists.xensource.com, Keir Fraser List-Id: xen-devel@lists.xenproject.org On Tue, Mar 20, 2012 at 06:21:31PM +0000, David Vrabel wrote: > From: David Vrabel > > If a maximum reservation for dom0 is not explictly given (i.e., no > dom0_mem=max:MMM command line option), then set the maximum > reservation to the initial number of pages. This is what most people > seem to expect when they specify dom0_mem=512M (i.e., exactly 512 MB > and no more). > > This change means that with Linux 3.0.5 and later kernels, > dom0_mem=512M has the same result as older, 'classic Xen' kernels. The > older kernels used the initial number of pages to set the maximum > number of pages and did not query the hypervisor for the maximum > reservation. > > It is still possible to have a larger reservation by explicitly > specifying dom0_mem=max:MMM. > > Signed-off-by: David Vrabel > --- > Keir, > > Suggest waiting for an Ack from Konrad (I think it results in the > behaviour we want but would prefer it if Konrad confirmed). Acked! Thanks for doing this. > > Also consider for 4.1. > > Thanks. > > David > > docs/misc/xen-command-line.markdown | 8 +++++++- > xen/arch/x86/domain_build.c | 10 ++++++++++ > 2 files changed, 17 insertions(+), 1 deletions(-) > > diff --git a/docs/misc/xen-command-line.markdown b/docs/misc/xen-command-line.markdown > index beb8462..0798700 100644 > --- a/docs/misc/xen-command-line.markdown > +++ b/docs/misc/xen-command-line.markdown > @@ -221,12 +221,18 @@ Specify the total size for dom0. > ### dom0\_mem (x86) > > `= List of ( min: | max: | )` > > -each `` is a size parameter. If the size is positive, it represents an absolute value. If the size is negative, the size specified is subtracted from the total available memory. > +Specify the amount of memory for the initial domain (dom0) and the maximum reservation (the maximum amount of memory that dom0 can be increased or ballooned to). > + > +Each `` is a size parameter. If the size is positive, it represents an absolute value. If the size is negative, the size specified is subtracted from the total available memory. > > * `min:` specifies the minimum amount of memory allocated to dom0. > * `max:` specifies the maximum amount of memory allocated to dom0. > * `` specified the exact amount of memory allocated to dom0. > > +If `max:` is specified then this sets the maximum reservation, otherwise the maximum reservation is set to the amount of memory allocated to dom0. > + > +For example, with `dom0_mem=512M`, dom0 starts with 512 MB and cannot balloon up any more. With `dom0_mem=512M,max:2G`, dom0 starts with 512 MB of memory and can balloon up to 2 GB. > + > ### dom0\_shadow > ### dom0\_vcpus\_pin > > `= ` > diff --git a/xen/arch/x86/domain_build.c b/xen/arch/x86/domain_build.c > index b3c5d4c..0c09abc 100644 > --- a/xen/arch/x86/domain_build.c > +++ b/xen/arch/x86/domain_build.c > @@ -253,6 +253,16 @@ static unsigned long __init compute_dom0_nr_pages( > } > #endif > > + /* > + * Set dom0's maximum reservation. > + * > + * If no maximum was set with dom0_mem=max:MMM, then the maximum > + * is the same as the initial number of pages. This is so > + * dom0_mem=MMM gives the behaviour most people expect (i.e., this > + * much RAM and no more). > + */ > + if ( max_pages == LONG_MAX ) > + max_pages = nr_pages; > d->max_pages = min_t(unsigned long, max_pages, UINT_MAX); > > return nr_pages; > -- > 1.7.2.5