[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v3 03/19] libxc: allocate memory with vNUMA information for PV guest
On 14/01/15 10:53, Wei Liu wrote: > >>> + return -EINVAL; >>> + } >>> + >>> /* allocate guest memory */ >>> - for ( i = rc = allocsz = 0; >>> - (i < dom->total_pages) && !rc; >>> - i += allocsz ) >>> + pfn_base = 0; >>> + for ( i = 0; i < dom->nr_vnodes; i++ ) >>> { >>> - allocsz = dom->total_pages - i; >>> - if ( allocsz > 1024*1024 ) >>> - allocsz = 1024*1024; >>> - rc = xc_domain_populate_physmap_exact( >>> - dom->xch, dom->guest_domid, allocsz, >>> - 0, 0, &dom->p2m_host[i]); >>> + unsigned int memflags; >>> + uint64_t pages; >>> + >>> + memflags = 0; >>> + if ( dom->vnode_to_pnode[i] != XC_VNUMA_NO_NODE ) >>> + { >>> + memflags |= XENMEMF_exact_node(dom->vnode_to_pnode[i]); >>> + memflags |= XENMEMF_exact_node_request; >>> + } >>> + >>> + pages = (dom->vnode_size[i] << 20) >> PAGE_SHIFT; >>> + >>> + for ( j = 0; j < pages; j += allocsz ) >>> + { >>> + allocsz = pages - j; >>> + if ( allocsz > 1024*1024 ) >>> + allocsz = 1024*1024; >>> + >>> + rc = xc_domain_populate_physmap_exact(dom->xch, >>> + dom->guest_domid, allocsz, 0, memflags, >>> + &dom->p2m_host[pfn_base+j]); >>> + >>> + if ( rc ) >>> + { >>> + if ( dom->vnode_to_pnode[i] != XC_VNUMA_NO_NODE ) >>> + xc_dom_panic(dom->xch, XC_INTERNAL_ERROR, >>> + "%s: fail to allocate >>> 0x%"PRIx64"/0x%"PRIpfn" pages (v=%d, p=%d)\n", >>> + __FUNCTION__, pages, >>> dom->total_pages, i, >>> + dom->vnode_to_pnode[i]); >> "failed to allocate" >> > Fixed. > >> I am not sure the total number of pages is useful here, especially as >> you don't know how many pages have successfully been allocated first. >> > Are you suggesting we don't print any number of print more numbers? I am not suggesting that you don't print numbers. "pages" is useful to know in the error message, but "d->total_pages" is not, as you don't know how many successful allocations have occurred before, and the total allocated memory so far. ~Andrew _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |