From: Ian Campbell <Ian.Campbell@eu.citrix.com>
To: Jeremy Fitzhardinge <jeremy@goop.org>
Cc: Dan Magenheimer <dan.magenheimer@oracle.com>,
"Xen-devel@lists.xensource.com" <Xen-devel@lists.xensource.com>,
Konrad Wilk <konrad.wilk@oracle.com>,
Daniel Kiper <dkiper@net-space.pl>,
Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
Subject: Re: RE: Ballooning up
Date: Wed, 15 Sep 2010 08:10:49 +0100 [thread overview]
Message-ID: <1284534649.15518.205.camel@localhost.localdomain> (raw)
In-Reply-To: <4C8FA606.3030502@goop.org>
On Tue, 2010-09-14 at 17:42 +0100, Jeremy Fitzhardinge wrote:
> On 09/14/2010 02:07 AM, Ian Campbell wrote:
> > On Mon, 2010-09-13 at 23:51 +0100, Jeremy Fitzhardinge wrote:
> >> On 09/13/2010 02:17 PM, Dan Magenheimer wrote:
> >>>> As a side-effect, it also works for dom0. If you set dom0_mem on the
> >>>> Xen command line, then nr_pages is limited to that value, but the
> >>>> kernel
> >>>> can still see the system's real E820 map, and therefore adds all the
> >>>> system's memory to its own balloon driver, potentially allowing dom0 to
> >>>> expand up to take all physical memory.
> >>>>
> >>>> However, this may caused bad side-effects if your system memory is much
> >>>> larger than your dom0_mem, especially if you use a 32-bit dom0. I may
> >>>> need to add a kernel command line option to limit the max initial
> >>>> balloon size to mitigate this...
> >>> I would call this dom0 functionality a bug. I think both Citrix
> >>> and Oracle use dom0_mem as a normal boot option for every
> >>> installation and, while I think both employ heuristics to choose
> >>> a larger dom0_mem for larger physical memory, I don't think it
> >>> grows large enough for, say, >256GB physical memory, to accommodate
> >>> the necessarily large number of page tables.
> >>>
> >>> So, I'd vote for NOT allowing dom0 to balloon up to physical
> >>> memory if dom0_mem is specified, and possibly a kernel command
> >>> line option that allows it to grow beyond. Or, possibly, no
> >>> option and never allow dom0 memory to grow beyond dom0_mem
> >>> unless (possibly) it grows with hot-plug.
> >> Yes, its a bit of a problem. The trouble is that the kernel can't
> >> really distinguish the two cases; either way, it sees a Xen-supplied
> >> xen_start_info->nr_pages as the amount of initial memory available, and
> >> an E820 table referring to more RAM beyond that.
> >>
> >> I guess there are three options:
> >>
> >> 1. add a "xen_maxmem" (or something) kernel parameter to override
> >> space specified in the E820 table
> >> 2. ignore E820 if its a privileged domain
> > As it stands I don't think it is currently possible to boot any domain 0
> > kernel pre-ballooned other than by using the native mem= option.
> >
> > I think the Right Thing to do would be for privileged domains to combine
> > the results of XENMEM_machine_memory_map (real e820) and
> > XENMEM_memory_map (pseudo-physical "e820") by clamping the result of
> > XENMEM_machine_memory_map at the maximum given in XENMEM_memory_map (or
> > taking some sort of union).
>
> Does the dom0 domain builder bother to set a pseudo-phys E820?
I thought the default with XENMEM_memory_map was to construct a fake
0..startinfo->nr_pages size e820, which would have been sensible, but it
turns out that's not what happens. In fact XENMEM_memory_map will return
ENOSYS in that case and guests are expected to construct the fake e820
themselves.
> > However, although I think that the Right Thing, I don't think having
> > domain 0 cut off its e820 at nr_pages unless overridden by mem= would be
> > a problem in practice and it certainly wins in terms of complexity of
> > reconciling XENMEM_memory_map and XENMEM_machine_memory_map.
>
> Indeed. I think adding general 32x limit between base and max size will
> prevent a completely unusable system, and then just suggest using mem=
> to control that more precisely (esp for dom0).
Sounds reasonable.
Ian.
next prev parent reply other threads:[~2010-09-15 7:10 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-09-07 8:36 Ballooning up Jeremy Fitzhardinge
[not found] ` <54eebb3a-f539-43be-8134-a969a4f671c4@default4C8EAB0E.7040407@goop.org>
2010-09-07 10:14 ` Ian Campbell
2010-09-07 13:26 ` Jeremy Fitzhardinge
2010-09-07 14:10 ` Ian Campbell
2010-09-15 21:47 ` Dan Magenheimer
2010-09-15 22:41 ` Jeremy Fitzhardinge
2010-09-13 21:17 ` Dan Magenheimer
2010-09-13 21:39 ` Dan Magenheimer
2010-09-13 23:06 ` Jeremy Fitzhardinge
2010-09-13 22:51 ` Jeremy Fitzhardinge
2010-09-14 0:22 ` Dan Magenheimer
2010-09-14 0:46 ` Jeremy Fitzhardinge
2010-09-14 15:06 ` Dan Magenheimer
2010-09-14 22:05 ` Jeremy Fitzhardinge
2010-09-15 7:13 ` Ian Campbell
2010-09-14 8:41 ` Jan Beulich
2010-09-14 16:35 ` Jeremy Fitzhardinge
2010-09-14 9:07 ` Ian Campbell
2010-09-14 16:42 ` Jeremy Fitzhardinge
2010-09-15 7:10 ` Ian Campbell [this message]
2010-09-15 17:29 ` Jeremy Fitzhardinge
2010-09-15 18:06 ` Dan Magenheimer
2010-09-15 20:29 ` Jeremy Fitzhardinge
2010-09-14 8:34 ` Ian Campbell
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1284534649.15518.205.camel@localhost.localdomain \
--to=ian.campbell@eu.citrix.com \
--cc=Stefano.Stabellini@eu.citrix.com \
--cc=Xen-devel@lists.xensource.com \
--cc=dan.magenheimer@oracle.com \
--cc=dkiper@net-space.pl \
--cc=jeremy@goop.org \
--cc=konrad.wilk@oracle.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).