From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
To: Tim Deegan <tim@xen.org>
Cc: Dan Magenheimer <dan.magenheimer@oracle.com>,
"Keir (Xen.org)" <keir@xen.org>,
Ian Campbell <ian.campbell@citrix.com>,
George Dunlap <George.Dunlap@eu.citrix.com>,
Andres Lagar-Cavilla <andreslc@gridcentric.ca>,
Ian Jackson <Ian.Jackson@eu.citrix.com>,
xen-devel@lists.xen.org,
Konrad Rzeszutek Wilk <konrad@kernel.org>,
Jan Beulich <JBeulich@suse.com>
Subject: Re: Proposed XENMEM_claim_pages hypercall: Analysis of problem and alternate solutions
Date: Tue, 12 Feb 2013 10:54:10 -0500 [thread overview]
Message-ID: <20130212155410.GG3016@phenom.dumpdata.com> (raw)
In-Reply-To: <20130121102923.GA72616@ocelot.phlegethon.org>
On Mon, Jan 21, 2013 at 10:29:23AM +0000, Tim Deegan wrote:
> At 16:45 -0500 on 18 Jan (1358527542), Konrad Rzeszutek Wilk wrote:
> > On Thu, Jan 17, 2013 at 03:16:31PM +0000, Tim Deegan wrote:
> > > At 14:08 -0500 on 11 Jan (1357913294), Konrad Rzeszutek Wilk wrote:
> > > > But the solution to the hypercall failing are multiple - one is to
> > > > try to "squeeze" all the guests to make space
> > >
> > > AFAICT if the toolstack can squeeze guests up to make room then the
> > > reservation hypercall isn't necessary -- just use the squeezing
> > > mechanism to make sure that running VMs don't use up the memory you want
> > > for building new ones.
> >
> > We might want to not do that until we have run out of options (this would
> > be a toolstack option to select the right choice). The other option is
> > to just launch the guest on another node.
>
> Sure, I see that; but what I meant was: the reservation hypercall only
> makes any kind of sense if the toolstack can't squeeze the existing guests.
OK. I am going to take the liberty here to assume that squeeze is setting
d->max_pages and kicking the guest to balloon down to some number.
>
> If it can squeeze VMs, as part of that it must have some mechanism to
> stop them from immediately re-allocating all the memory as it frees it.
> So in the case where enough memory is already free, you just use that
> mechanism to protect it while you build the new VM.
Sure.
>
> Or (since I get the impression that losing this allocation race is a
> rare event) you can take the optimistic route: after you've checked that
> enough memory is free, just start building the VM. If you run out of
> memory part-way through, you can squeeze the other VMs back out so you can
> finish the job.
All of this revolves around 'squeezing' the existing guests from the
tool-stack side. And as such the options you enumerated are the right
way of fixing it. And also the ways Xapi are pretty good.
However that is not the problem we are trying to address. We do _not_ want
to squeeze the guest at all. We want to leave it up to the guest to
go and down as it sees fit. We just need to set the ceiling (at start
time, and this is d->max_pages), and let the guest increment/decrement
d->tot_pages as it sees fit. And while that is going on, still be able
to create new guests in parallel.
next prev parent reply other threads:[~2013-02-12 15:54 UTC|newest]
Thread overview: 53+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <mailman.18000.1354568068.1399.xen-devel@lists.xen.org>
2012-12-04 3:24 ` Proposed XENMEM_claim_pages hypercall: Analysis of problem and alternate solutions Andres Lagar-Cavilla
2012-12-18 22:17 ` Konrad Rzeszutek Wilk
2012-12-19 12:53 ` George Dunlap
2012-12-19 13:48 ` George Dunlap
2013-01-03 20:38 ` Dan Magenheimer
2013-01-02 21:59 ` Konrad Rzeszutek Wilk
2013-01-14 18:28 ` George Dunlap
2013-01-22 21:57 ` Konrad Rzeszutek Wilk
2013-01-23 18:36 ` Dave Scott
2013-02-12 15:38 ` Konrad Rzeszutek Wilk
2012-12-20 16:04 ` Tim Deegan
2013-01-02 15:31 ` Andres Lagar-Cavilla
2013-01-02 21:43 ` Dan Magenheimer
2013-01-03 16:25 ` Andres Lagar-Cavilla
2013-01-03 18:49 ` Dan Magenheimer
2013-01-07 14:43 ` Ian Campbell
2013-01-07 18:41 ` Dan Magenheimer
2013-01-08 9:03 ` Ian Campbell
2013-01-08 19:41 ` Dan Magenheimer
2013-01-09 10:41 ` Ian Campbell
2013-01-09 14:44 ` Dan Magenheimer
2013-01-09 14:58 ` Ian Campbell
2013-01-14 15:45 ` George Dunlap
2013-01-14 18:18 ` Dan Magenheimer
2013-01-14 19:42 ` George Dunlap
2013-01-14 23:14 ` Dan Magenheimer
2013-01-23 12:18 ` Ian Campbell
2013-01-23 17:34 ` Dan Magenheimer
2013-02-12 16:18 ` Konrad Rzeszutek Wilk
2013-01-10 10:31 ` Ian Campbell
2013-01-10 18:42 ` Dan Magenheimer
2013-01-02 21:38 ` Dan Magenheimer
2013-01-03 16:24 ` Andres Lagar-Cavilla
2013-01-03 18:33 ` Dan Magenheimer
2013-01-10 17:13 ` Tim Deegan
2013-01-10 21:43 ` Dan Magenheimer
2013-01-17 15:12 ` Tim Deegan
2013-01-17 15:26 ` Andres Lagar-Cavilla
2013-01-22 19:22 ` Dan Magenheimer
2013-01-23 12:18 ` Ian Campbell
2013-01-23 16:05 ` Dan Magenheimer
2013-01-02 15:29 ` Andres Lagar-Cavilla
2013-01-11 16:03 ` Konrad Rzeszutek Wilk
2013-01-11 16:13 ` Andres Lagar-Cavilla
2013-01-11 19:08 ` Konrad Rzeszutek Wilk
2013-01-14 16:00 ` George Dunlap
2013-01-14 16:11 ` Andres Lagar-Cavilla
2013-01-17 15:16 ` Tim Deegan
2013-01-18 21:45 ` Konrad Rzeszutek Wilk
2013-01-21 10:29 ` Tim Deegan
2013-02-12 15:54 ` Konrad Rzeszutek Wilk [this message]
2013-02-14 13:32 ` Konrad Rzeszutek Wilk
2012-12-03 20:54 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=20130212155410.GG3016@phenom.dumpdata.com \
--to=konrad.wilk@oracle.com \
--cc=George.Dunlap@eu.citrix.com \
--cc=Ian.Jackson@eu.citrix.com \
--cc=JBeulich@suse.com \
--cc=andreslc@gridcentric.ca \
--cc=dan.magenheimer@oracle.com \
--cc=ian.campbell@citrix.com \
--cc=keir@xen.org \
--cc=konrad@kernel.org \
--cc=tim@xen.org \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.