From: Dario Faggioli <dario.faggioli@citrix.com>
To: Juergen Gross <juergen.gross@ts.fujitsu.com>
Cc: Dan Magenheimer <dan.magenheimer@oracle.com>,
Ian Campbell <Ian.Campbell@citrix.com>,
George Dunlap <George.Dunlap@eu.citrix.com>,
Andrew Cooper <Andrew.Cooper3@citrix.com>,
"Tim (Xen.org)" <tim@xen.org>, Olaf Hering <olaf@aepfle.de>,
xen-devel <xen-devel@lists.xen.org>,
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: Re: [PATCH 6 of 8 [RFC]] libxc: introduce xc_domain_move_memory
Date: Tue, 9 Apr 2013 10:51:20 +0200 [thread overview]
Message-ID: <1365497480.17022.81.camel@Abyss> (raw)
In-Reply-To: <5163CDA2.7030206@ts.fujitsu.com>
[-- Attachment #1.1: Type: text/plain, Size: 2387 bytes --]
On mar, 2013-04-09 at 09:13 +0100, Juergen Gross wrote:
> What about the following approach:
>
In general, I like it... More details below.
> - do the migration in chunks (like 1GB, may be configurable)
>
Yes, provided these chunks are big enough, I think the overhead of is
acceptable.
> - don't move pages which are already on one of the target nodes
>
Yep, that is definitely sane, and was already on my TODO list (although,
you're right, I forgot to mention it in the cover or in the various
changelogs). It's not there yet because I'm missing a way of knowing on
what node a page is, but I'm already working of putting it together.
Anyway, I agree on this too, and thanks for pointing that out. :-)
> - try to allocate memory on the target node while the domain is still running.
> If this fails, there is no need to move that chunk. Depending on the page
> size requirements (huge pages) decide whether the move is aborted or done
> partially.
> - in case of successful allocation suspend the domain, do the copy and update
> page tables for the copied pages, then resume the domain
>
This is also fine, the only issue being that I'd probably need to fiddle
with the domain max_mem, and stuff like that, wouldn't I? I'm saying
this because, when testing the few that I sent already, I run right into
this when I was trying to do it in the allocate-copy-deallocate order
(of course, depending on how big a chunk is, but this is going to be
much less than 1GB!).
Do you see what I mean? Do you think it would be nice to increase the
domain's "memory allowance" (temporarily, of course) for this to be
possible?
> - free the memory chunk on the old node(s)
> - repeat until either no memory obtained or move is finished
>
> This will have higher overhead, but the domain will be suspended for only
> short periods of time. The memory requirements don't matter, as the additional
> memory will be allocated only for a short period of time.
>
Yep, this all makes sense, with the only nit being the max_mem issue
above.
Thanks again 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
next prev parent reply other threads:[~2013-04-09 8:51 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
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 [this message]
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=1365497480.17022.81.camel@Abyss \
--to=dario.faggioli@citrix.com \
--cc=Andrew.Cooper3@citrix.com \
--cc=George.Dunlap@eu.citrix.com \
--cc=Ian.Campbell@citrix.com \
--cc=JBeulich@suse.com \
--cc=andres@lagarcavilla.org \
--cc=dan.magenheimer@oracle.com \
--cc=dvrabel@cantab.net \
--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.