|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v8 10/13] libxl/xl: deprecate the build_info->cpumap field
On Fri, Jun 13, 2014 at 03:10:28PM +0200, Dario Faggioli wrote:
[...]
> meaning we want vcpu 0 to be pinned to pcpu 3,4 and vcpu 1 to
> be pinned to pcpu 2,3,4,5,6. Before this change, in fact, the
> list variant (["xx", "yy"]) supported only single values.
>
> BEWARE that, although still being there, for backward
> compatibility reasons, the cpumap field in build_info is no
> longer used anywhere in libxl.
>
This paragraph needs update.
> Signed-off-by: Dario Faggioli <dario.faggioli@xxxxxxxxxx>
> ---
> docs/man/xl.cfg.pod.5 | 8 +++---
> tools/libxl/libxl_create.c | 6 ----
> tools/libxl/libxl_dom.c | 4 +--
> tools/libxl/libxl_types.idl | 6 ++++
> tools/libxl/xl_cmdimpl.c | 61
> +++++++++++++++++--------------------------
> 5 files changed, 34 insertions(+), 51 deletions(-)
>
> diff --git a/docs/man/xl.cfg.pod.5 b/docs/man/xl.cfg.pod.5
> index c087cbc..af48622 100644
> --- a/docs/man/xl.cfg.pod.5
> +++ b/docs/man/xl.cfg.pod.5
> @@ -143,11 +143,11 @@ Combining this with "all" is also possible, meaning
> "all,^nodes:1"
> results in all the vcpus of the guest running on all the cpus on the
> host, except for the cpus belonging to the host NUMA node 1.
>
> -=item ["2", "3"] (or [2, 3])
> +=item ["2", "3-8,^5"]
>
What happens if I still have [2, 3] in my config? From the lexer's PoV
2 and "2" are different things.
> -To ask for specific vcpu mapping. That means (in this example), vcpu #0
> -of the guest will run on cpu #2 of the host and vcpu #1 of the guest will
> -run on cpu #3 of the host.
> +To ask for specific vcpu mapping. That means (in this example), vcpu 0
> +of the guest will run on cpu 2 of the host and vcpu 1 of the guest will
> +run on cpus 3,4,6,7,8 of the host.
>
> =back
>
> diff --git a/tools/libxl/libxl_create.c b/tools/libxl/libxl_create.c
> index d015cf4..443fe7d 100644
> --- a/tools/libxl/libxl_create.c
> +++ b/tools/libxl/libxl_create.c
> @@ -187,12 +187,6 @@ int libxl__domain_build_info_setdefault(libxl__gc *gc,
> } else if (b_info->avail_vcpus.size > HVM_MAX_VCPUS)
> return ERROR_FAIL;
>
> - if (!b_info->cpumap.size) {
> - if (libxl_cpu_bitmap_alloc(CTX, &b_info->cpumap, 0))
> - return ERROR_FAIL;
> - libxl_bitmap_set_any(&b_info->cpumap);
> - }
> -
As you retain libxl_set_vcpuaffinity_all(b_info->cpumap) you might also
want to retain this one. I believe you will figure this out. :-)
> libxl_defbool_setdefault(&b_info->numa_placement, true);
>
> if (!b_info->nodemap.size) {
> diff --git a/tools/libxl/libxl_dom.c b/tools/libxl/libxl_dom.c
> index 1767659..0b00470 100644
> --- a/tools/libxl/libxl_dom.c
> +++ b/tools/libxl/libxl_dom.c
> @@ -250,7 +250,7 @@ int libxl__build_pre(libxl__gc *gc, uint32_t domid,
> * whatever that turns out to be.
> */
> if (libxl_defbool_val(info->numa_placement)) {
> - if (!libxl_bitmap_is_full(&info->cpumap)) {
> + if (d_config->b_info.num_vcpu_hard_affinity) {
> LOG(ERROR, "Can run NUMA placement only if no vcpu "
> "affinity is specified");
> return ERROR_INVAL;
> @@ -261,8 +261,6 @@ int libxl__build_pre(libxl__gc *gc, uint32_t domid,
> return rc;
> }
> libxl_domain_set_nodeaffinity(ctx, domid, &info->nodemap);
> - libxl_set_vcpuaffinity_all(ctx, domid, info->max_vcpus,
> - &info->cpumap, NULL);
>
This hunk, as I said in my other email, should stay.
> /* If we have the vcpu hard affinity list, honour it */
> if (d_config->b_info.num_vcpu_hard_affinity) {
> diff --git a/tools/libxl/libxl_types.idl b/tools/libxl/libxl_types.idl
> index 05978d7..cd5c0d4 100644
> --- a/tools/libxl/libxl_types.idl
> +++ b/tools/libxl/libxl_types.idl
> @@ -297,7 +297,11 @@ libxl_domain_sched_params =
> Struct("domain_sched_params",[
> libxl_domain_build_info = Struct("domain_build_info",[
> ("max_vcpus", integer),
> ("avail_vcpus", libxl_bitmap),
> - ("cpumap", libxl_bitmap),
> + ("cpumap", libxl_bitmap), # DEPRECATED!
> + # The cpumap field above has been deprecated by the introduction of the
> + # vcpu_hard_affinity array. It is no longer used anywhere in libxl code,
> + # so one better avoid setting and, in general, using it at all. To do so,
> + # is indeed harmless, but won't produce any actual effect on the domain.
This comments needs update: cpumap is still functional but
vcpu_hard_affinity takes precedence.
(I skip the parser part as it looks mostly like code motion to me)
Wei.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |