[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] x86: set dom0's default maximum reservation to the initial number of pages
On Tue, Mar 20, 2012 at 06:21:31PM +0000, David Vrabel wrote: > From: David Vrabel <david.vrabel@xxxxxxxxxx> > > 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 <david.vrabel@xxxxxxxxxx> > --- > 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:<value> | max: <value> | <value> )` > > -each `<value>` 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 `<value>` 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:<value>` specifies the minimum amount of memory allocated to dom0. > * `max:<value>` specifies the maximum amount of memory allocated to dom0. > * `<value>` specified the exact amount of memory allocated to dom0. > > +If `max:<value>` 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 > > `= <boolean>` > 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 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |