From mboxrd@z Thu Jan 1 00:00:00 1970 From: Elena Ufimtseva Subject: [PATCH v6 10/10] libxl: set vnuma for domain Date: Fri, 18 Jul 2014 01:50:09 -0400 Message-ID: <1405662609-31486-11-git-send-email-ufimtseva@gmail.com> References: <1405662609-31486-1-git-send-email-ufimtseva@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1405662609-31486-1-git-send-email-ufimtseva@gmail.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: xen-devel@lists.xen.org Cc: keir@xen.org, Ian.Campbell@citrix.com, stefano.stabellini@eu.citrix.com, george.dunlap@eu.citrix.com, msw@linux.com, dario.faggioli@citrix.com, lccycc123@gmail.com, ian.jackson@eu.citrix.com, JBeulich@suse.com, Elena Ufimtseva List-Id: xen-devel@lists.xenproject.org Call xc_domain_setvnuma to set vnuma topology for domain. Prepares xc_dom_image for domain bootmem memory allocation Signed-off-by: Elena Ufimtseva --- tools/libxl/libxl.c | 22 ++++++++++++++++++++++ tools/libxl/libxl.h | 19 +++++++++++++++++++ 2 files changed, 41 insertions(+) diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c index 39f1c28..e9f2607 100644 --- a/tools/libxl/libxl.c +++ b/tools/libxl/libxl.c @@ -4807,6 +4807,28 @@ static int libxl__set_vcpuonline_qmp(libxl__gc *gc, uint32_t domid, return 0; } +int libxl_domain_setvnuma(libxl_ctx *ctx, + uint32_t domid, + uint16_t nr_vnodes, + uint16_t nr_vcpus, + vmemrange_t *vmemrange, + unsigned int *vdistance, + unsigned int *vcpu_to_vnode, + unsigned int *vnode_to_pnode) +{ + int ret; + ret = xc_domain_setvnuma(ctx->xch, domid, nr_vnodes, + nr_vcpus, vmemrange, + vdistance, + vcpu_to_vnode, + vnode_to_pnode); + if (ret < 0) { + LIBXL__LOG_ERRNO(ctx, LIBXL__LOG_ERROR, "Could not set vnuma topology for domain %d", domid); + return ERROR_FAIL; + } + return ret; +} + int libxl_set_vcpuonline(libxl_ctx *ctx, uint32_t domid, libxl_bitmap *cpumap) { GC_INIT(ctx); diff --git a/tools/libxl/libxl.h b/tools/libxl/libxl.h index 459557d..1636c7f 100644 --- a/tools/libxl/libxl.h +++ b/tools/libxl/libxl.h @@ -330,6 +330,7 @@ #include /* for pid_t */ #include +#include typedef struct libxl__ctx libxl_ctx; @@ -937,6 +938,15 @@ void libxl_vcpuinfo_list_free(libxl_vcpuinfo *, int nr_vcpus); void libxl_device_vtpm_list_free(libxl_device_vtpm*, int nr_vtpms); void libxl_vtpminfo_list_free(libxl_vtpminfo *, int nr_vtpms); +int libxl_domain_setvnuma(libxl_ctx *ctx, + uint32_t domid, + uint16_t nr_vnodes, + uint16_t nr_vcpus, + vmemrange_t *vmemrange, + unsigned int *vdistance, + unsigned int *vcpu_to_vnode, + unsigned int *vnode_to_pnode); + /* * Devices * ======= @@ -1283,6 +1293,15 @@ bool libxl_ms_vm_genid_is_zero(const libxl_ms_vm_genid *id); int libxl_fd_set_cloexec(libxl_ctx *ctx, int fd, int cloexec); int libxl_fd_set_nonblock(libxl_ctx *ctx, int fd, int nonblock); +int libxl_domain_setvnuma(libxl_ctx *ctx, + uint32_t domid, + uint16_t nr_vnodes, + uint16_t nr_vcpus, + vmemrange_t *vmemrange, + unsigned int *vdistance, + unsigned int *vcpu_to_vnode, + unsigned int *vnode_to_pnode); + #include #endif /* LIBXL_H */ -- 1.7.10.4