On Mon, Aug 3, 2015 at 6:10 PM Dario Faggioli <dario.faggi...@citrix.com>
wrote:

> On Sat, 2015-08-01 at 06:21 +0000, Kun Cheng wrote:
> > I've looked into those settings and vcpu affinities on Xen wiki page.
> > However what I'm trying to argue about is memory should be migrated
> > when vcpus are moved to another node.
> >
> I still struggle a bit to understand what you mean. It's exactly what I
> said (or, at least, what I tried to do) that memory is *not* moved right
> now.
>
OK I get it, memory is not moved right now. What I said was discussing the
necessity of doing that.  As according to the locality theory (e.g.
programs always prone to access the data that is recently accessed) and
potential memory access delay (memory pages are on Node A but vcpus are
moved to Node B), then I suppose moving memory pages along with the vcpus
are necessary. If it can be achieved we should be able to improve the VM
execution performance, I suppose.(But probably it will introduce overhead
as moving memory is really really annoying...) .And If my words still
confuses you, please feel free to tell me which part misleads you :)


>
> There's no mean to do that, and putting one together is something really
> difficult. There probably would be benefits of having it in place, but
> only if it's implemented in the proper way, and applied with the proper
> policing, which all should be thought, discussed and implemented.
>

What do you mean by saying "There's no mean to do that"? Did the underlying
implementation (e.g. functions or other things) have no or incomplete
support for moving memory pages (I seldom explore the mechanism which deals
with memory)? Or did you mean it's too tricky & difficult to complete such
a goal?


> > But setting a vcpu's affinity only seems to allow vcpu migration
> > between different nodes. As my NUMA server is on the way I cannot
> > verify that.
> >
> Well, that is correct, memory is not moved. The local migration trick,
> which I described in my previous email, actually works "only" because
> migrating a guest basically means re-creating it from scratch (although,
> of course, the "new" guest resumes from where the "old" was when
> migration started), and hence re-allocate all it's memory, rather than
> moving it.
>

Yes 'local migration' cannot be seen as an actual 'memory migration'. But
from the VM user's view, their VMs get scheduled to another node and
relevant memory also 'appear' there so that's a fake 'move', strictly
speaking.

I'm also thinking about the plan B I mentioned. Basically that is following
the VM migration procedures to learn how to move a page. I think both share
something in common as moving a page is allocating a new one and copy old
data to it (I'm still exploring how to let the vcpu access the new pages,
remapping?), at the same time dirty pages etc. should be dealt. Am I
correct?


>
> > Anyhow, moving memory really draws my interest now.
> >
> Glad to hear that. Feel free to give it a try, and report here what you
> find out. :-)
>

I'm evaluating the feasibility now and I wish (if I'm going to do it) it
(or phase 1, maybe it should be split into multiple multiple stages to
reduce the difficulty & complexity) can be completed in 6-8 months.


>
> 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)
>
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

Reply via email to