[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 2 of 4 v6/leftover] xl: inform libxl if there was a cpumap in the config file
So that we attempt automatic placement only if that was not the case. Signed-off-by: Dario Faggioli <dario.faggioli@xxxxxxxxxx> diff --git a/tools/libxl/libxl_create.c b/tools/libxl/libxl_create.c --- a/tools/libxl/libxl_create.c +++ b/tools/libxl/libxl_create.c @@ -215,6 +215,8 @@ int libxl__domain_build_info_setdefault( libxl_bitmap_set_any(&b_info->cpumap); } + libxl_defbool_setdefault(&b_info->numa_placement, true); + if (b_info->max_memkb == LIBXL_MEMKB_DEFAULT) b_info->max_memkb = 32 * 1024; if (b_info->target_memkb == LIBXL_MEMKB_DEFAULT) diff --git a/tools/libxl/libxl_dom.c b/tools/libxl/libxl_dom.c --- a/tools/libxl/libxl_dom.c +++ b/tools/libxl/libxl_dom.c @@ -212,7 +212,8 @@ int libxl__build_pre(libxl__gc *gc, uint * call to libxl_set_vcpuaffinity_all() will do the actual placement, * whatever that turns out to be. */ - if (libxl_bitmap_is_full(&info->cpumap)) { + if (libxl_defbool_val(info->numa_placement) && + libxl_bitmap_is_full(&info->cpumap)) { int rc = numa_place_domain(gc, info); if (rc) return rc; diff --git a/tools/libxl/libxl_types.idl b/tools/libxl/libxl_types.idl --- a/tools/libxl/libxl_types.idl +++ b/tools/libxl/libxl_types.idl @@ -249,6 +249,7 @@ libxl_domain_build_info = Struct("domain ("max_vcpus", integer), ("avail_vcpus", libxl_bitmap), ("cpumap", libxl_bitmap), + ("numa_placement", libxl_defbool), ("tsc_mode", libxl_tsc_mode), ("max_memkb", MemKB), ("target_memkb", MemKB), diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c --- a/tools/libxl/xl_cmdimpl.c +++ b/tools/libxl/xl_cmdimpl.c @@ -696,6 +696,9 @@ static void parse_config_data(const char vcpu_to_pcpu[n_cpus] = i; n_cpus++; } + + /* We have a cpumap, disable automatic placement */ + libxl_defbool_set(&b_info->numa_placement, false); } else if (!xlu_cfg_get_string (config, "cpus", &buf, 0)) { char *buf2 = strdup(buf); @@ -709,6 +712,8 @@ static void parse_config_data(const char if (vcpupin_parse(buf2, &b_info->cpumap)) exit(1); free(buf2); + + libxl_defbool_set(&b_info->numa_placement, false); } if (!xlu_cfg_get_long (config, "memory", &l, 0)) { _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |