From: Dario Faggioli <dario.faggioli@citrix.com>
To: xen-devel <xen-devel@lists.xen.org>
Cc: dan.magenheimer@oracle.com, ian.campbell@citrix.com,
George Dunlap <George.Dunlap@eu.citrix.com>,
Andrew Cooper <andrew.cooper3@citrix.com>,
Juergen Gross <juergen.gross@ts.fujitsu.com>,
Tim Deegan <tim@xen.org>, Olaf Hering <olaf@aepfle.de>,
David Vrabel <dvrabel@cantab.net>,
Keir Fraser <keir.xen@gmail.com>,
Andres Lagar-Cavilla <andres@lagarcavilla.org>,
Jan Beulich <JBeulich@suse.com>,
Roger Pau Monne <roger.pau@citrix.com>
Subject: [PATCH 0 of 8 [RFC]] Move all the memory of a domain
Date: Tue, 09 Apr 2013 04:49:05 +0200 [thread overview]
Message-ID: <patchbomb.1365475745@hit-nxdomain.opendns.com> (raw)
Hi everyone,
It's been a while now since I started working on trying to implement a
mechanism for moving all the memory of a domain from one NUMA node to another.
Yes, that is part of the more general work about improving Xen NUMA support I'm
carrying on... For more details, see here:
http://wiki.xen.org/wiki/Xen_NUMA_Roadmap.
The approach I decided to take is to mimic a sort of back-to-back save/restore.
In some more details, I'm suspending a domain, deallocating all its memory,
reallocating it to different places (especially, for instance, if the NUMA
node-affinity changed in the meanwhile), update the domain's and the Xen's
address translation tables, and resume the domain back. Easy eh? :-D
All the above happens at the libxc level, although the patch series provides
all the glue code needed to interact with the new feature from both libxl and
xl.
Also, consider that this fisrt series focuses on PV guests. For HVM, some "if
(hvm)" here and there will do the trick, together, of course, with the proper
updating of HAP tables, etc. ... Still much less work than all the tweaking
required by PV-guests! I'll include more HVM bits in future releases of this
series, but, in case you have, do feel free to provide you comments on that
aspect too, even right now.
I got sidetracked and distracted many times, and I have to admit, this is not
quite a done job yet. However, I reached the point where, at least part of what
I have can be shown here, so that you can provide some early feedback on it,
and help me proceed further, with future design choices and implementation
steps.
I have to say I find it quite challenging as, especially for PV, it touches and
exercises a lot of code paths and features I'm not yet so much familiar with.
That is why feedback is really important, even if the thing is still at an
early stage. For instances, discussing how to properly deal with things like
grant tables, or TMEM, or how to make sure we do not mess up vCPU contexts,
would be really great. Despite the RFC status, I did my best in trying to
facilitate that, both when writing the code and the comments/changelogs for
each patch... For instance, I've put some 'XXX' marked spots where I thought
something was missing and/or commenting is most needed. If you find 5 minutes
to look into them, that would be much appreciated. :-)
I know we're in a very particular moment, due to 4.3 freeze, so I understand if
people are busy finalizing the existing and proposed features, instead of
reviewing RFCs for new ones, but I still felt like it would be worthwhile to
send this out. Let's see if anyone take this chance of telling me how bad it
looks! ;-P
About the series, the patches on which to concentrate on are, especially at
this stage:
6/8 libxc: introduce xc_domain_move_memory
7/8 libxl: introduce libxl_domain_move_memory
The others are introducing minor changes, ancillary to the two above.
Thanks in advance 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)
next reply other threads:[~2013-04-09 2:49 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-04-09 2:49 Dario Faggioli [this message]
2013-04-09 2:49 ` [PATCH 1 of 8 [RFC]] xl: allow for node-wise specification of vcpu pinning Dario Faggioli
2013-04-09 2:49 ` [PATCH 2 of 8 [RFC]] xl: allow for changing NUMA node affinity on-line Dario Faggioli
2013-04-09 2:49 ` [PATCH 3 of 8 [RFC]] libxc: introduce xc_domain_get_address_size Dario Faggioli
2013-04-09 2:49 ` [PATCH 4 of 8 [RFC]] libxc: introduce xc_map_domain_meminfo (and xc_unmap_domain_meminfo) Dario Faggioli
2013-04-09 2:49 ` [PATCH 5 of 8 [RFC]] libxc: allow for ctxt to be NULL in xc_vcpu_setcontext Dario Faggioli
2013-04-09 2:49 ` [PATCH 6 of 8 [RFC]] libxc: introduce xc_domain_move_memory Dario Faggioli
2013-04-09 5:23 ` Juergen Gross
2013-04-09 6:56 ` Dario Faggioli
2013-04-09 8:13 ` Juergen Gross
2013-04-09 8:51 ` Dario Faggioli
2013-04-09 9:16 ` Juergen Gross
2013-04-09 17:43 ` Dan Magenheimer
2013-04-11 14:16 ` Dario Faggioli
2013-05-02 14:32 ` Tim Deegan
2013-05-02 15:07 ` George Dunlap
2013-05-02 15:13 ` Tim Deegan
2013-05-06 17:37 ` Dario Faggioli
2013-05-06 17:29 ` Dario Faggioli
2013-04-09 2:49 ` [PATCH 7 of 8 [RFC]] libxl: introduce libxl_domain_move_memory Dario Faggioli
2013-04-09 2:49 ` [PATCH 8 of 8 [RFC]] tools/misc: introduce xen-mfndump 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=patchbomb.1365475745@hit-nxdomain.opendns.com \
--to=dario.faggioli@citrix.com \
--cc=George.Dunlap@eu.citrix.com \
--cc=JBeulich@suse.com \
--cc=andres@lagarcavilla.org \
--cc=andrew.cooper3@citrix.com \
--cc=dan.magenheimer@oracle.com \
--cc=dvrabel@cantab.net \
--cc=ian.campbell@citrix.com \
--cc=juergen.gross@ts.fujitsu.com \
--cc=keir.xen@gmail.com \
--cc=olaf@aepfle.de \
--cc=roger.pau@citrix.com \
--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.