From: Dan Magenheimer <dan.magenheimer@oracle.com>
To: Konrad Wilk <konrad.wilk@oracle.com>,
mike.mcclurg@citrix.com, anil@recoil.org
Cc: Kurt Hackel <kurt.hackel@oracle.com>, xen-devel@lists.xen.org
Subject: Re: domain creation vs querying free memory (xend and xl)
Date: Thu, 27 Sep 2012 08:32:35 -0700 (PDT) [thread overview]
Message-ID: <b60910c6-06f7-42d1-a474-bdaaae7a61a9@default> (raw)
In-Reply-To: <20120927112624.GA8576@phenom.dumpdata.com>
> From: Konrad Rzeszutek Wilk
> Subject: Re: domain creation vs querying free memory (xend and xl)
>
> On Wed, Sep 26, 2012 at 02:17:06PM -0700, Dan Magenheimer wrote:
> > I was asked a question that seems like it should be obvious
> > but it doesn't seem to be, at least in xm-land. I'll look
> > into it further, as well as for xl, but I thought I'd ask
> > first to see if there is a known answer or if this is a known
> > problem:
> >
> > Suppose that xm/xl create is issued on a large-memory
> > domain (PV or HVM or, future, PVH). It takes awhile
> > for this domain to launch and during at least part of this
> > time, the toolset hasn't yet requested all of the
> > required memory from the hypervisor to complete the
> > launch of the domain... or perhaps the toolset has,
> > but the hypervisor is slow about calling the long sequence
> > of page allocations (e.g. maybe because it is zeroing
> > each page?).
> >
> > Then it is desired to launch a second large-memory domain.
> > The tools can query Xen to see if there is sufficient RAM
> > and there is, because the first launch has not yet
> > allocated all the RAM assigned to it.
> >
> > But the second domain launch fails, possibly after
> > several minutes because, actually, there isn't enough
> > physical RAM for both.
> >
> > Does this make sense? Should the tools "reserve"
> > maxmem as a "transaction" and/or ensure that "xm/xl
> > free" calls account for the entire requested amount
> > of RAM? Or maybe xl _does_ work this way?
>
> So say "freeze" the amount of free memory. Lets CC the XCP folks
Hmmm... the problem is the opposite (I think, since I don't
have hardware at hand to reproduce it).
Assume a machine has 2TB of physical RAM and a "xm create"
is started to launch a 1TB guest called "X". While X is
being launched, another thread watches "xm free" and sees
that it slowly goes down from 1.995TB. That thread does not
know what the eventual "floor" will be. Now a third thread
does a "xm create" to launch a second 1TB guest "Y".
The "xm create" asks the hypervisor and sees, yep, there
is, at this moment, 1.376TB of free memory so it commences
launching the guest.
Because the hypervisor and dom0 consume some RAM, both
of these "xm create" will eventually fail, possibly
after several minutes.
Seems like a "xm unreserved" is needed, similar to "xm free"
but takes into account the tools' knowledge of what RAM is
in the process of being reserved for launching domains,
not just the allocation requests the hypervisor has already
processed.
next prev parent reply other threads:[~2012-09-27 15:32 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-09-26 21:17 domain creation vs querying free memory (xend and xl) Dan Magenheimer
2012-09-27 11:26 ` Konrad Rzeszutek Wilk
2012-09-27 15:32 ` Dan Magenheimer [this message]
2012-09-27 15:24 ` George Shuklin
2012-09-28 16:08 ` Dario Faggioli
2012-10-02 18:17 ` Dan Magenheimer
2012-09-28 17:12 ` Ian Jackson
2012-10-01 20:03 ` Dan Magenheimer
2012-10-02 9:10 ` Tim Deegan
2012-10-02 9:47 ` Ian Campbell
2012-10-02 19:33 ` Dan Magenheimer
2012-10-02 20:16 ` Tim Deegan
2012-10-02 21:56 ` Dan Magenheimer
2012-10-04 10:06 ` Tim Deegan
2012-10-04 10:17 ` Ian Campbell
2012-10-04 13:20 ` Andres Lagar-Cavilla
2012-10-04 13:25 ` Ian Campbell
2012-10-04 16:54 ` Dan Magenheimer
2012-10-04 17:00 ` Andres Lagar-Cavilla
2012-10-05 9:44 ` Ian Campbell
2012-10-05 11:40 ` George Dunlap
2012-10-08 1:02 ` Dan Magenheimer
2012-10-16 11:49 ` George Dunlap
2012-10-16 17:51 ` Dan Magenheimer
2012-10-17 17:35 ` George Dunlap
2012-10-17 18:33 ` Andres Lagar-Cavilla
2012-10-17 19:46 ` Dan Magenheimer
2012-10-17 20:14 ` Andres Lagar-Cavilla
2012-10-17 22:07 ` Dan Magenheimer
2012-10-17 18:45 ` Dan Magenheimer
2012-10-17 17:35 ` George Dunlap
2012-10-04 13:33 ` Andres Lagar-Cavilla
2012-10-04 16:59 ` Dan Magenheimer
2012-10-04 17:08 ` Andres Lagar-Cavilla
2012-10-04 17:18 ` Dan Magenheimer
2012-10-04 17:30 ` Andres Lagar-Cavilla
2012-10-04 17:55 ` Dan Magenheimer
2012-10-05 14:25 ` Andres Lagar-Cavilla
2012-10-07 23:43 ` Dan Magenheimer
2012-10-04 16:36 ` Dan Magenheimer
2012-10-04 18:26 ` Olaf Hering
2012-10-04 19:38 ` Dan Magenheimer
2012-10-04 20:18 ` Olaf Hering
2012-10-04 20:35 ` Dan Magenheimer
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=b60910c6-06f7-42d1-a474-bdaaae7a61a9@default \
--to=dan.magenheimer@oracle.com \
--cc=anil@recoil.org \
--cc=konrad.wilk@oracle.com \
--cc=kurt.hackel@oracle.com \
--cc=mike.mcclurg@citrix.com \
--cc=xen-devel@lists.xen.org \
/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).