[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] x86 dom builder: Allocate domU pages in batches.
# HG changeset patch # User Keir Fraser <keir.fraser@xxxxxxxxxx> # Date 1237457055 0 # Node ID f0d033f0a319d4ce0b20244cee68998a7afd3317 # Parent 2039e82710512f2b4b45f83cf4cdb3b037bf0d7c x86 dom builder: Allocate domU pages in batches. Allows a 32-bit dom0 to create very large guests. Signed-off-by: Mukesh Rathor <mukesh.rathor@xxxxxxxxxx> Signed-off-by: Keir Fraser <keir.fraser@xxxxxxxxxx> --- tools/libxc/xc_dom_x86.c | 14 ++++++++++---- 1 files changed, 10 insertions(+), 4 deletions(-) diff -r 2039e8271051 -r f0d033f0a319 tools/libxc/xc_dom_x86.c --- a/tools/libxc/xc_dom_x86.c Wed Mar 18 17:30:13 2009 +0000 +++ b/tools/libxc/xc_dom_x86.c Thu Mar 19 10:04:15 2009 +0000 @@ -694,7 +694,7 @@ int arch_setup_meminit(struct xc_dom_ima int arch_setup_meminit(struct xc_dom_image *dom) { int rc; - xen_pfn_t pfn; + xen_pfn_t pfn, allocsz, i; rc = x86_compat(dom->guest_xc, dom->guest_domid, dom->guest_type); if ( rc ) @@ -713,9 +713,15 @@ int arch_setup_meminit(struct xc_dom_ima dom->p2m_host[pfn] = pfn; /* allocate guest memory */ - rc = xc_domain_memory_populate_physmap(dom->guest_xc, dom->guest_domid, - dom->total_pages, 0, 0, - dom->p2m_host); + for ( i = rc = allocsz = 0; (i < dom->total_pages) && !rc; i += allocsz ) + { + allocsz = dom->total_pages - i; + if ( allocsz > 1024*1024 ) + allocsz = 1024*1024; + rc = xc_domain_memory_populate_physmap( + dom->guest_xc, dom->guest_domid, allocsz, 0, 0, &dom->p2m_host[i]); + } + return rc; } _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |