All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dario Faggioli <dario.faggioli@citrix.com>
To: Jan Beulich <JBeulich@suse.com>
Cc: Ian.Campbell@eu.citrix.com,
	xen-devel <xen-devel@lists.xenproject.org>,
	Ian.Jackson@eu.citrix.com, ufimtseva@gmail.com,
	Yechen Li <lccycc123@gmail.com>
Subject: Re: [RFC v2][PATCH 1/3] docs: design and intended usage for NUMA-aware ballooning
Date: Sat, 17 Aug 2013 01:30:52 +0200	[thread overview]
Message-ID: <1376695852.2757.44.camel@Abyss> (raw)
In-Reply-To: <520E085A02000078000EC810@nat28.tlf.novell.com>


[-- Attachment #1.1: Type: text/plain, Size: 3243 bytes --]

On ven, 2013-08-16 at 10:09 +0100, Jan Beulich wrote:
> >>> On 16.08.13 at 06:13, Yechen Li <lccycc123@gmail.com> wrote:
> > +The biggest difference between current and NUMA-aware ballooning is that the
> > +latter needs to keep multiple lists of the ballooned pages in an array, with
> > +one element for each virtual node. This way, it is always evident, at any
> > +given time, what ballooned pages belong to what vnode.
> 
> That's wrong afaict: ballooned out pages aren't associated with any
> memory, and hence can't be associated with any vNID. Once they
> get re-populated, which vNID the memory belongs to is an attribute
> of the memory coming in, not the control structure that it's to be
> associated with.
> 
I may be wrong (I'm sorry, I had very few chance to look at the
ballooning code, and won't be able to do so for a while), but I think
what we want here is the other way around, i.e., having a way to make
sure that the memory that will come in will also end up --in the guest--
within a specific v-node.

I don't know if the only/best way to do this is the array of lists in
Yechen's patches, and I agree (as per the other e-mail) that this more
an implementation detail than anything else, but I think the point here
is: do we want to support that operational mode (again, perhaps not as
the default node, even in a virtual NUMA enabled guest) ?

> I believe this thinking of yours stems from the fact that in Linux the
> page control structures are associated with nodes by way of the
> physical memory map being split into larger pieces, each coming from
> a particular node. But other OSes don't need to follow this model,
> and what you propose would also exclude extending the spanned
> nodes set if memory gets ballooned in that's not associated with
> any node the domain so far was "knowing" of.
> 
I agree on the first part of this comment... Too much Linux-ism in the
description of what should be a generic model.

The second part (the one about what happens if memory comes from an
"unknown" node), I'm not sure I get what you mean.

Suppose we have guest G with 2 v-nodes and with pages in v-node 0 (say,
page 0,1,2..N-1) are backed by frames on p-node 2, while pages in v-node
1 (say, N,N+1,N+2..2N-1) are backed by frames on p-node 4, and that is
because, at creation time, either the user or the toolstack decided this
was the way to go.
So, if page 2 was ballooned down, when ballooning it up, we would like
to retain the fact that it is backed by a frame in p-node 2, and we
could ask Xen to try make that happen. On failure (e.g., no free frames
on p-node 2), we could either fail or have Xen allocate the memory
somewhere else, i.e., not on p-node 2 or p-node 4, and live with it
(i.e., map G's page 2 there), which I think is what you mean with <<node
the domain so far was "knowing" of>>, isn't it?

Or was it something different that you were asking?

Thanks and Regards,
Dario

-- 
<<This happens because I choose it to happen!>> (Raistlin Majere)
-----------------------------------------------------------------
Dario Faggioli, Ph.D, http://about.me/dario.faggioli
Senior Software Engineer, Citrix Systems R&D Ltd., Cambridge (UK)


[-- Attachment #1.2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

[-- Attachment #2: Type: text/plain, Size: 126 bytes --]

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

  parent reply	other threads:[~2013-08-16 23:30 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-08-16  4:13 [RFC v2][PATCH 1/3] docs: design and intended usage for NUMA-aware ballooning Yechen Li
2013-08-16  9:09 ` Jan Beulich
2013-08-16 10:18   ` Li Yechen
     [not found]   ` <CAP5+zHQ128UVGsGjxsNdvSOupt42Gue2+1nLVg-KYrb=exqqCw@mail.gmail.com>
2013-08-16 13:21     ` Jan Beulich
2013-08-16 14:17       ` Li Yechen
2013-08-16 14:55         ` Jan Beulich
2013-08-16 22:53       ` Dario Faggioli
2013-08-19  9:22         ` Jan Beulich
2013-08-20 14:18           ` Dario Faggioli
2013-08-16 23:30   ` Dario Faggioli [this message]
2013-08-19  9:17     ` Jan Beulich
2013-08-20 14:05       ` Dario Faggioli
2013-08-20 14:24         ` Jan Beulich
2013-08-19 11:05   ` George Dunlap
2013-08-20 14:31     ` Dario Faggioli
2013-08-19 12:58 ` David Vrabel
2013-08-19 13:26   ` George Dunlap
2013-08-20 14:20     ` David Vrabel
2013-08-20 14:55   ` Dario Faggioli
2013-08-20 15:15   ` Li Yechen
2013-08-25 21:24     ` Dario Faggioli
2013-09-26 14:15       ` Li Yechen
2013-09-26 14:15         ` Li Yechen
2013-08-23 20:53   ` Konrad Rzeszutek Wilk
2013-08-25 21:18     ` Dario Faggioli

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=1376695852.2757.44.camel@Abyss \
    --to=dario.faggioli@citrix.com \
    --cc=Ian.Campbell@eu.citrix.com \
    --cc=Ian.Jackson@eu.citrix.com \
    --cc=JBeulich@suse.com \
    --cc=lccycc123@gmail.com \
    --cc=ufimtseva@gmail.com \
    --cc=xen-devel@lists.xenproject.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.