[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] libxc: wrappers for XENMEM {increase, decrease}_reservation and populate_physmap
# HG changeset patch # User Ian Campbell <ian.campbell@xxxxxxxxxx> # Date 1287417282 -3600 # Node ID 5ec79c06b18a4d26d93faf74f39e8dc8d1d1800a # Parent 7bf2ba59c737141880fbe8c48c538fae1aaceb33 libxc: wrappers for XENMEM {increase,decrease}_reservation and populate_physmap Currently the wrappers for these hypercalls swallow partial success and return failure to the caller. In order to use these functions more widely instead of open-coding uses of XENMEM_* and xc_memory_op add variants which return the actual hypercall result. Therefore add the following functions: xc_domain_increase_reservation xc_domain_decrease_reservation xc_domain_populate_physmap and implement the existing semantics using these new functions as xc_domain_increase_reservation_exact xc_domain_decrease_reservation_exact xc_domain_populate_physmap_exact replacing the existing xc_domain_memory_* functions. Use these new functions to replace all open coded uses of XENMEM_increase_reservation, XENMEM_decrease_reservation and XENMEM_populate_physmap. Also rename xc_domain_memory_*_pod_target to xc_domain_*_pod_target for consistency. Temporarily add a compatibility macro for xc_domain_memory_populate_physmap to allow time for qemu to catch up. Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx> Signed-off-by: Ian Jackson <ian.jackson@xxxxxxxxxxxxx> --- tools/libxc/ia64/xc_ia64_hvm_build.c | 8 - tools/libxc/ia64/xc_ia64_linux_restore.c | 6 - tools/libxc/xc_dom_ia64.c | 2 tools/libxc/xc_dom_x86.c | 4 tools/libxc/xc_domain.c | 158 ++++++++++++++++++++----------- tools/libxc/xc_domain_restore.c | 14 -- tools/libxc/xc_hvm_build.c | 56 ++++------ tools/libxc/xc_private.c | 4 tools/libxc/xenctrl.h | 88 ++++++++++------- tools/libxl/libxl.c | 4 tools/python/xen/lowlevel/xc/xc.c | 4 11 files changed, 200 insertions(+), 148 deletions(-) diff -r 7bf2ba59c737 -r 5ec79c06b18a tools/libxc/ia64/xc_ia64_hvm_build.c --- a/tools/libxc/ia64/xc_ia64_hvm_build.c Mon Oct 18 16:53:04 2010 +0100 +++ b/tools/libxc/ia64/xc_ia64_hvm_build.c Mon Oct 18 16:54:42 2010 +0100 @@ -903,7 +903,7 @@ xc_ia64_setup_shared_info(xc_interface * * In this function, we will allocate memory and build P2M/M2P table for VTI * guest. Frist, a pfn list will be initialized discontiguous, normal memory * begins with 0, GFW memory and other five pages at their place defined in - * xen/include/public/arch-ia64.h xc_domain_memory_populate_physmap() called + * xen/include/public/arch-ia64.h xc_domain_populate_physmap_exact() called * five times, to set parameter 'extent_order' to different value, this is * convenient to allocate discontiguous memory with different size. */ @@ -966,7 +966,7 @@ setup_guest(xc_interface *xch, uint32_t pfn++) pfn_list[i++] = pfn; - rc = xc_domain_memory_populate_physmap(xch, dom, nr_pages, 0, 0, + rc = xc_domain_populate_physmap_exact(xch, dom, nr_pages, 0, 0, &pfn_list[0]); if (rc != 0) { PERROR("Could not allocate normal memory for Vti guest."); @@ -979,7 +979,7 @@ setup_guest(xc_interface *xch, uint32_t for (i = 0; i < GFW_PAGES; i++) pfn_list[i] = (GFW_START >> PAGE_SHIFT) + i; - rc = xc_domain_memory_populate_physmap(xch, dom, GFW_PAGES, + rc = xc_domain_populate_physmap_exact(xch, dom, GFW_PAGES, 0, 0, &pfn_list[0]); if (rc != 0) { PERROR("Could not allocate GFW memory for Vti guest."); @@ -995,7 +995,7 @@ setup_guest(xc_interface *xch, uint32_t pfn_list[nr_special_pages] = memmap_info_pfn; nr_special_pages++; - rc = xc_domain_memory_populate_physmap(xch, dom, nr_special_pages, + rc = xc_domain_populate_physmap_exact(xch, dom, nr_special_pages, 0, 0, &pfn_list[0]); if (rc != 0) { PERROR("Could not allocate IO page or store page or buffer io page."); diff -r 7bf2ba59c737 -r 5ec79c06b18a tools/libxc/ia64/xc_ia64_linux_restore.c --- a/tools/libxc/ia64/xc_ia64_linux_restore.c Mon Oct 18 16:53:04 2010 +0100 +++ b/tools/libxc/ia64/xc_ia64_linux_restore.c Mon Oct 18 16:54:42 2010 +0100 @@ -49,7 +49,7 @@ populate_page_if_necessary(xc_interface if (xc_ia64_p2m_present(p2m_table, gmfn)) return 0; - return xc_domain_memory_populate_physmap(xch, dom, 1, 0, 0, &gmfn); + return xc_domain_populate_physmap_exact(xch, dom, 1, 0, 0, &gmfn); } static int @@ -112,7 +112,7 @@ xc_ia64_recv_unallocated_list(xc_interfa } } if (nr_frees > 0) { - if (xc_domain_memory_decrease_reservation(xch, dom, nr_frees, + if (xc_domain_decrease_reservation_exact(xch, dom, nr_frees, 0, pfntab) < 0) { PERROR("Could not decrease reservation"); goto out; @@ -546,7 +546,7 @@ xc_ia64_hvm_domain_setup(xc_interface *x }; unsigned long nr_pages = sizeof(pfn_list) / sizeof(pfn_list[0]); - rc = xc_domain_memory_populate_physmap(xch, dom, nr_pages, + rc = xc_domain_populate_physmap_exact(xch, dom, nr_pages, 0, 0, &pfn_list[0]); if (rc != 0) PERROR("Could not allocate IO page or buffer io page."); diff -r 7bf2ba59c737 -r 5ec79c06b18a tools/libxc/xc_dom_ia64.c --- a/tools/libxc/xc_dom_ia64.c Mon Oct 18 16:53:04 2010 +0100 +++ b/tools/libxc/xc_dom_ia64.c Mon Oct 18 16:54:42 2010 +0100 @@ -186,7 +186,7 @@ int arch_setup_meminit(struct xc_dom_ima dom->p2m_host[pfn] = start + pfn; /* allocate guest memory */ - rc = xc_domain_memory_populate_physmap(dom->xch, dom->guest_domid, + rc = xc_domain_populate_physmap_exact(dom->xch, dom->guest_domid, nbr, 0, 0, dom->p2m_host); return rc; diff -r 7bf2ba59c737 -r 5ec79c06b18a tools/libxc/xc_dom_x86.c --- a/tools/libxc/xc_dom_x86.c Mon Oct 18 16:53:04 2010 +0100 +++ b/tools/libxc/xc_dom_x86.c Mon Oct 18 16:54:42 2010 +0100 @@ -733,7 +733,7 @@ int arch_setup_meminit(struct xc_dom_ima DOMPRINTF("Populating memory with %d superpages", count); for ( pfn = 0; pfn < count; pfn++ ) extents[pfn] = pfn << SUPERPAGE_PFN_SHIFT; - rc = xc_domain_memory_populate_physmap(dom->xch, dom->guest_domid, + rc = xc_domain_populate_physmap_exact(dom->xch, dom->guest_domid, count, SUPERPAGE_PFN_SHIFT, 0, extents); if ( rc ) @@ -762,7 +762,7 @@ int arch_setup_meminit(struct xc_dom_ima allocsz = dom->total_pages - i; if ( allocsz > 1024*1024 ) allocsz = 1024*1024; - rc = xc_domain_memory_populate_physmap( + rc = xc_domain_populate_physmap_exact( dom->xch, dom->guest_domid, allocsz, 0, 0, &dom->p2m_host[i]); } diff -r 7bf2ba59c737 -r 5ec79c06b18a tools/libxc/xc_domain.c --- a/tools/libxc/xc_domain.c Mon Oct 18 16:53:04 2010 +0100 +++ b/tools/libxc/xc_domain.c Mon Oct 18 16:54:42 2010 +0100 @@ -579,12 +579,12 @@ int xc_domain_get_tsc_info(xc_interface } -int xc_domain_memory_increase_reservation(xc_interface *xch, - uint32_t domid, - unsigned long nr_extents, - unsigned int extent_order, - unsigned int mem_flags, - xen_pfn_t *extent_start) +int xc_domain_increase_reservation(xc_interface *xch, + uint32_t domid, + unsigned long nr_extents, + unsigned int extent_order, + unsigned int mem_flags, + xen_pfn_t *extent_start) { int err; struct xen_memory_reservation reservation = { @@ -598,6 +598,22 @@ int xc_domain_memory_increase_reservatio set_xen_guest_handle(reservation.extent_start, extent_start); err = xc_memory_op(xch, XENMEM_increase_reservation, &reservation); + + return err; +} + +int xc_domain_increase_reservation_exact(xc_interface *xch, + uint32_t domid, + unsigned long nr_extents, + unsigned int extent_order, + unsigned int mem_flags, + xen_pfn_t *extent_start) +{ + int err; + + err = xc_domain_increase_reservation(xch, domid, nr_extents, + extent_order, mem_flags, extent_start); + if ( err == nr_extents ) return 0; @@ -613,11 +629,11 @@ int xc_domain_memory_increase_reservatio return err; } -int xc_domain_memory_decrease_reservation(xc_interface *xch, - uint32_t domid, - unsigned long nr_extents, - unsigned int extent_order, - xen_pfn_t *extent_start) +int xc_domain_decrease_reservation(xc_interface *xch, + uint32_t domid, + unsigned long nr_extents, + unsigned int extent_order, + xen_pfn_t *extent_start) { int err; struct xen_memory_reservation reservation = { @@ -637,6 +653,21 @@ int xc_domain_memory_decrease_reservatio } err = xc_memory_op(xch, XENMEM_decrease_reservation, &reservation); + + return err; +} + +int xc_domain_decrease_reservation_exact(xc_interface *xch, + uint32_t domid, + unsigned long nr_extents, + unsigned int extent_order, + xen_pfn_t *extent_start) +{ + int err; + + err = xc_domain_decrease_reservation(xch, domid, nr_extents, + extent_order, extent_start); + if ( err == nr_extents ) return 0; @@ -651,12 +682,12 @@ int xc_domain_memory_decrease_reservatio return err; } -int xc_domain_memory_populate_physmap(xc_interface *xch, - uint32_t domid, - unsigned long nr_extents, - unsigned int extent_order, - unsigned int mem_flags, - xen_pfn_t *extent_start) +int xc_domain_populate_physmap(xc_interface *xch, + uint32_t domid, + unsigned long nr_extents, + unsigned int extent_order, + unsigned int mem_flags, + xen_pfn_t *extent_start) { int err; struct xen_memory_reservation reservation = { @@ -668,6 +699,21 @@ int xc_domain_memory_populate_physmap(xc set_xen_guest_handle(reservation.extent_start, extent_start); err = xc_memory_op(xch, XENMEM_populate_physmap, &reservation); + + return err; +} + +int xc_domain_populate_physmap_exact(xc_interface *xch, + uint32_t domid, + unsigned long nr_extents, + unsigned int extent_order, + unsigned int mem_flags, + xen_pfn_t *extent_start) +{ + int err; + + err = xc_domain_populate_physmap(xch, domid, nr_extents, + extent_order, mem_flags, extent_start); if ( err == nr_extents ) return 0; @@ -682,13 +728,13 @@ int xc_domain_memory_populate_physmap(xc return err; } -static int xc_domain_memory_pod_target(xc_interface *xch, - int op, - uint32_t domid, - uint64_t target_pages, - uint64_t *tot_pages, - uint64_t *pod_cache_pages, - uint64_t *pod_entries) +static int xc_domain_pod_target(xc_interface *xch, + int op, + uint32_t domid, + uint64_t target_pages, + uint64_t *tot_pages, + uint64_t *pod_cache_pages, + uint64_t *pod_entries) { int err; @@ -701,7 +747,7 @@ static int xc_domain_memory_pod_target(x if ( err < 0 ) { - DPRINTF("Failed %s_memory_target dom %d\n", + DPRINTF("Failed %s_pod_target dom %d\n", (op==XENMEM_set_pod_target)?"set":"get", domid); errno = -err; @@ -719,37 +765,37 @@ static int xc_domain_memory_pod_target(x return err; } - - -int xc_domain_memory_set_pod_target(xc_interface *xch, - uint32_t domid, - uint64_t target_pages, - uint64_t *tot_pages, - uint64_t *pod_cache_pages, - uint64_t *pod_entries) -{ - return xc_domain_memory_pod_target(xch, - XENMEM_set_pod_target, - domid, - target_pages, - tot_pages, - pod_cache_pages, - pod_entries); -} - -int xc_domain_memory_get_pod_target(xc_interface *xch, - uint32_t domid, - uint64_t *tot_pages, - uint64_t *pod_cache_pages, - uint64_t *pod_entries) -{ - return xc_domain_memory_pod_target(xch, - XENMEM_get_pod_target, - domid, - -1, - tot_pages, - pod_cache_pages, - pod_entries); + + +int xc_domain_set_pod_target(xc_interface *xch, + uint32_t domid, + uint64_t target_pages, + uint64_t *tot_pages, + uint64_t *pod_cache_pages, + uint64_t *pod_entries) +{ + return xc_domain_pod_target(xch, + XENMEM_set_pod_target, + domid, + target_pages, + tot_pages, + pod_cache_pages, + pod_entries); +} + +int xc_domain_get_pod_target(xc_interface *xch, + uint32_t domid, + uint64_t *tot_pages, + uint64_t *pod_cache_pages, + uint64_t *pod_entries) +{ + return xc_domain_pod_target(xch, + XENMEM_get_pod_target, + domid, + -1, + tot_pages, + pod_cache_pages, + pod_entries); } int xc_domain_max_vcpus(xc_interface *xch, uint32_t domid, unsigned int max) diff -r 7bf2ba59c737 -r 5ec79c06b18a tools/libxc/xc_domain_restore.c --- a/tools/libxc/xc_domain_restore.c Mon Oct 18 16:53:04 2010 +0100 +++ b/tools/libxc/xc_domain_restore.c Mon Oct 18 16:54:42 2010 +0100 @@ -147,7 +147,7 @@ static int uncanonicalize_pagetable( /* Allocate the requisite number of mfns. */ if ( nr_mfns && - (xc_domain_memory_populate_physmap(xch, dom, nr_mfns, 0, 0, + (xc_domain_populate_physmap_exact(xch, dom, nr_mfns, 0, 0, ctx->p2m_batch) != 0) ) { ERROR("Failed to allocate memory for batch.!\n"); @@ -888,7 +888,7 @@ static int apply_batch(xc_interface *xch /* Now allocate a bunch of mfns for this batch */ if ( nr_mfns && - (xc_domain_memory_populate_physmap(xch, dom, nr_mfns, 0, + (xc_domain_populate_physmap_exact(xch, dom, nr_mfns, 0, 0, ctx->p2m_batch) != 0) ) { ERROR("Failed to allocate memory for batch.!\n"); @@ -1529,15 +1529,7 @@ int xc_domain_restore(xc_interface *xch, if ( nr_frees > 0 ) { - struct xen_memory_reservation reservation = { - .nr_extents = nr_frees, - .extent_order = 0, - .domid = dom - }; - set_xen_guest_handle(reservation.extent_start, tailbuf.u.pv.pfntab); - - if ( (frc = xc_memory_op(xch, XENMEM_decrease_reservation, - &reservation)) != nr_frees ) + if ( (frc = xc_domain_decrease_reservation(xch, dom, nr_frees, 0, tailbuf.u.pv.pfntab)) != nr_frees ) { PERROR("Could not decrease reservation : %d", frc); goto out; diff -r 7bf2ba59c737 -r 5ec79c06b18a tools/libxc/xc_hvm_build.c --- a/tools/libxc/xc_hvm_build.c Mon Oct 18 16:53:04 2010 +0100 +++ b/tools/libxc/xc_hvm_build.c Mon Oct 18 16:54:42 2010 +0100 @@ -203,7 +203,7 @@ static int setup_guest(xc_interface *xch * Under 2MB mode, we allocate pages in batches of no more than 8MB to * ensure that we can be preempted and hence dom0 remains responsive. */ - rc = xc_domain_memory_populate_physmap( + rc = xc_domain_populate_physmap_exact( xch, dom, 0xa0, 0, 0, &page_array[0x00]); cur_pages = 0xc0; stat_normal_pages = 0xc0; @@ -233,20 +233,16 @@ static int setup_guest(xc_interface *xch SUPERPAGE_1GB_NR_PFNS << PAGE_SHIFT) ) { long done; - xen_pfn_t sp_extents[count >> SUPERPAGE_1GB_SHIFT]; - struct xen_memory_reservation sp_req = { - .nr_extents = count >> SUPERPAGE_1GB_SHIFT, - .extent_order = SUPERPAGE_1GB_SHIFT, - .domid = dom - }; - - if ( pod_mode ) - sp_req.mem_flags = XENMEMF_populate_on_demand; - - set_xen_guest_handle(sp_req.extent_start, sp_extents); - for ( i = 0; i < sp_req.nr_extents; i++ ) + unsigned long nr_extents = count >> SUPERPAGE_1GB_SHIFT; + xen_pfn_t sp_extents[nr_extents]; + + for ( i = 0; i < nr_extents; i++ ) sp_extents[i] = page_array[cur_pages+(i<<SUPERPAGE_1GB_SHIFT)]; - done = xc_memory_op(xch, XENMEM_populate_physmap, &sp_req); + + done = xc_domain_populate_physmap(xch, dom, nr_extents, SUPERPAGE_1GB_SHIFT, + pod_mode ? XENMEMF_populate_on_demand : 0, + sp_extents); + if ( done > 0 ) { stat_1gb_pages += done; @@ -275,20 +271,16 @@ static int setup_guest(xc_interface *xch if ( ((count | cur_pages) & (SUPERPAGE_2MB_NR_PFNS - 1)) == 0 ) { long done; - xen_pfn_t sp_extents[count >> SUPERPAGE_2MB_SHIFT]; - struct xen_memory_reservation sp_req = { - .nr_extents = count >> SUPERPAGE_2MB_SHIFT, - .extent_order = SUPERPAGE_2MB_SHIFT, - .domid = dom - }; - - if ( pod_mode ) - sp_req.mem_flags = XENMEMF_populate_on_demand; - - set_xen_guest_handle(sp_req.extent_start, sp_extents); - for ( i = 0; i < sp_req.nr_extents; i++ ) + unsigned long nr_extents = count >> SUPERPAGE_2MB_SHIFT; + xen_pfn_t sp_extents[nr_extents]; + + for ( i = 0; i < nr_extents; i++ ) sp_extents[i] = page_array[cur_pages+(i<<SUPERPAGE_2MB_SHIFT)]; - done = xc_memory_op(xch, XENMEM_populate_physmap, &sp_req); + + done = xc_domain_populate_physmap(xch, dom, nr_extents, SUPERPAGE_2MB_SHIFT, + pod_mode ? XENMEMF_populate_on_demand : 0, + sp_extents); + if ( done > 0 ) { stat_2mb_pages += done; @@ -302,7 +294,7 @@ static int setup_guest(xc_interface *xch /* Fall back to 4kB extents. */ if ( count != 0 ) { - rc = xc_domain_memory_populate_physmap( + rc = xc_domain_populate_physmap_exact( xch, dom, count, 0, 0, &page_array[cur_pages]); cur_pages += count; stat_normal_pages += count; @@ -313,10 +305,8 @@ static int setup_guest(xc_interface *xch * adjust the PoD cache size so that domain tot_pages will be * target_pages - 0x20 after this call. */ if ( pod_mode ) - rc = xc_domain_memory_set_pod_target(xch, - dom, - target_pages - 0x20, - NULL, NULL, NULL); + rc = xc_domain_set_pod_target(xch, dom, target_pages - 0x20, + NULL, NULL, NULL); if ( rc != 0 ) { @@ -344,7 +334,7 @@ static int setup_guest(xc_interface *xch for ( i = 0; i < NR_SPECIAL_PAGES; i++ ) { xen_pfn_t pfn = special_pfn(i); - rc = xc_domain_memory_populate_physmap(xch, dom, 1, 0, 0, &pfn); + rc = xc_domain_populate_physmap_exact(xch, dom, 1, 0, 0, &pfn); if ( rc != 0 ) { PERROR("Could not allocate %d'th special page.", i); diff -r 7bf2ba59c737 -r 5ec79c06b18a tools/libxc/xc_private.c --- a/tools/libxc/xc_private.c Mon Oct 18 16:53:04 2010 +0100 +++ b/tools/libxc/xc_private.c Mon Oct 18 16:54:42 2010 +0100 @@ -675,14 +675,14 @@ unsigned long xc_make_page_below_4G( xen_pfn_t old_mfn = mfn; xen_pfn_t new_mfn; - if ( xc_domain_memory_decrease_reservation( + if ( xc_domain_decrease_reservation_exact( xch, domid, 1, 0, &old_mfn) != 0 ) { DPRINTF("xc_make_page_below_4G decrease failed. mfn=%lx\n",mfn); return 0; } - if ( xc_domain_memory_increase_reservation( + if ( xc_domain_increase_reservation_exact( xch, domid, 1, 0, XENMEMF_address_bits(32), &new_mfn) != 0 ) { DPRINTF("xc_make_page_below_4G increase failed. mfn=%lx\n",mfn); diff -r 7bf2ba59c737 -r 5ec79c06b18a tools/libxc/xenctrl.h --- a/tools/libxc/xenctrl.h Mon Oct 18 16:53:04 2010 +0100 +++ b/tools/libxc/xenctrl.h Mon Oct 18 16:54:42 2010 +0100 @@ -785,38 +785,62 @@ int xc_domain_get_tsc_info(xc_interface int xc_domain_disable_migrate(xc_interface *xch, uint32_t domid); -int xc_domain_memory_increase_reservation(xc_interface *xch, - uint32_t domid, - unsigned long nr_extents, - unsigned int extent_order, - unsigned int mem_flags, - xen_pfn_t *extent_start); - -int xc_domain_memory_decrease_reservation(xc_interface *xch, - uint32_t domid, - unsigned long nr_extents, - unsigned int extent_order, - xen_pfn_t *extent_start); - -int xc_domain_memory_populate_physmap(xc_interface *xch, - uint32_t domid, - unsigned long nr_extents, - unsigned int extent_order, - unsigned int mem_flags, - xen_pfn_t *extent_start); - -int xc_domain_memory_set_pod_target(xc_interface *xch, - uint32_t domid, - uint64_t target_pages, - uint64_t *tot_pages, - uint64_t *pod_cache_pages, - uint64_t *pod_entries); - -int xc_domain_memory_get_pod_target(xc_interface *xch, - uint32_t domid, - uint64_t *tot_pages, - uint64_t *pod_cache_pages, - uint64_t *pod_entries); +int xc_domain_increase_reservation(xc_interface *xch, + uint32_t domid, + unsigned long nr_extents, + unsigned int extent_order, + unsigned int mem_flags, + xen_pfn_t *extent_start); + +int xc_domain_increase_reservation_exact(xc_interface *xch, + uint32_t domid, + unsigned long nr_extents, + unsigned int extent_order, + unsigned int mem_flags, + xen_pfn_t *extent_start); + +int xc_domain_decrease_reservation(xc_interface *xch, + uint32_t domid, + unsigned long nr_extents, + unsigned int extent_order, + xen_pfn_t *extent_start); + +int xc_domain_decrease_reservation_exact(xc_interface *xch, + uint32_t domid, + unsigned long nr_extents, + unsigned int extent_order, + xen_pfn_t *extent_start); + +int xc_domain_populate_physmap(xc_interface *xch, + uint32_t domid, + unsigned long nr_extents, + unsigned int extent_order, + unsigned int mem_flags, + xen_pfn_t *extent_start); + +int xc_domain_populate_physmap_exact(xc_interface *xch, + uint32_t domid, + unsigned long nr_extents, + unsigned int extent_order, + unsigned int mem_flags, + xen_pfn_t *extent_start); + +/* Temporary for compatibility */ +#define xc_domain_memory_populate_physmap(x, d, nr, eo, mf, es) \ + xc_domain_populate_physmap_exact(x, d, nr, eo, mf, es) + +int xc_domain_set_pod_target(xc_interface *xch, + uint32_t domid, + uint64_t target_pages, + uint64_t *tot_pages, + uint64_t *pod_cache_pages, + uint64_t *pod_entries); + +int xc_domain_get_pod_target(xc_interface *xch, + uint32_t domid, + uint64_t *tot_pages, + uint64_t *pod_cache_pages, + uint64_t *pod_entries); int xc_domain_ioport_permission(xc_interface *xch, uint32_t domid, diff -r 7bf2ba59c737 -r 5ec79c06b18a tools/libxl/libxl.c --- a/tools/libxl/libxl.c Mon Oct 18 16:53:04 2010 +0100 +++ b/tools/libxl/libxl.c Mon Oct 18 16:54:42 2010 +0100 @@ -2948,11 +2948,11 @@ retry_transaction: } new_target_memkb -= videoram; - rc = xc_domain_memory_set_pod_target(ctx->xch, domid, + rc = xc_domain_set_pod_target(ctx->xch, domid, new_target_memkb / 4, NULL, NULL, NULL); if (rc != 0) { LIBXL__LOG_ERRNO(ctx, LIBXL__LOG_ERROR, - "xc_domain_memory_set_pod_target domid=%d, memkb=%d " + "xc_domain_set_pod_target domid=%d, memkb=%d " "failed rc=%d\n", domid, new_target_memkb / 4, rc); abort = 1; diff -r 7bf2ba59c737 -r 5ec79c06b18a tools/python/xen/lowlevel/xc/xc.c --- a/tools/python/xen/lowlevel/xc/xc.c Mon Oct 18 16:53:04 2010 +0100 +++ b/tools/python/xen/lowlevel/xc/xc.c Mon Oct 18 16:54:42 2010 +0100 @@ -1635,8 +1635,8 @@ static PyObject *pyxc_domain_set_target_ mem_pages = mem_kb / 4; - if (xc_domain_memory_set_pod_target(self->xc_handle, dom, mem_pages, - NULL, NULL, NULL) != 0) + if (xc_domain_set_pod_target(self->xc_handle, dom, mem_pages, + NULL, NULL, NULL) != 0) return pyxc_error_to_exception(self->xc_handle); Py_INCREF(zero); _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |