All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0 of 8 [RFC]] Move all the memory of a domain
@ 2013-04-09  2:49 Dario Faggioli
  2013-04-09  2:49 ` [PATCH 1 of 8 [RFC]] xl: allow for node-wise specification of vcpu pinning Dario Faggioli
                   ` (7 more replies)
  0 siblings, 8 replies; 21+ messages in thread
From: Dario Faggioli @ 2013-04-09  2:49 UTC (permalink / raw)
  To: xen-devel
  Cc: dan.magenheimer, ian.campbell, George Dunlap, Andrew Cooper,
	Juergen Gross, Tim Deegan, Olaf Hering, David Vrabel, Keir Fraser,
	Andres Lagar-Cavilla, Jan Beulich, Roger Pau Monne

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)

^ permalink raw reply	[flat|nested] 21+ messages in thread

end of thread, other threads:[~2013-05-06 17:37 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-04-09  2:49 [PATCH 0 of 8 [RFC]] Move all the memory of a domain Dario Faggioli
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

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.