diff options
author | Dario Faggioli <dario.faggioli@citrix.com> | 2012-07-26 15:41:54 +0100 |
---|---|---|
committer | Dario Faggioli <dario.faggioli@citrix.com> | 2012-07-26 15:41:54 +0100 |
commit | f5e3add94b9455922f3374e61acd60ffddb6b5de (patch) | |
tree | 549afc56133d1112497e523f715f9750da188d7e /tools/libxl/libxl_internal.h | |
parent | e98fee8390936477d369b9832ff9bb06594510c7 (diff) | |
download | xen-f5e3add94b9455922f3374e61acd60ffddb6b5de.tar.gz xen-f5e3add94b9455922f3374e61acd60ffddb6b5de.tar.bz2 xen-f5e3add94b9455922f3374e61acd60ffddb6b5de.zip |
libxl: have NUMA placement deal with cpupools
In such a way that only the cpus belonging to the cpupool of the
domain being placed are considered for the placement itself.
This happens by filtering out all the nodes in which the cpupool
has not any cpu from the placement candidates. After that ---as
cpu pooling not necessarily happens at NUMA nodes boundaries--- we
also make sure only the actual cpus that are part of the pool are
considered when counting how much processors a placement candidate
provides.
Signed-off-by: Dario Faggioli <dario.faggioli@citrix.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
Committed-by: Ian Campbell <ian.campbell@citrix.com>
Diffstat (limited to 'tools/libxl/libxl_internal.h')
-rw-r--r-- | tools/libxl/libxl_internal.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/tools/libxl/libxl_internal.h b/tools/libxl/libxl_internal.h index fd1b0cedfa..4938510ec0 100644 --- a/tools/libxl/libxl_internal.h +++ b/tools/libxl/libxl_internal.h @@ -2568,6 +2568,10 @@ typedef int (*libxl__numa_candidate_cmpf)(const libxl__numa_candidate *c1, * other hand, if not even one single candidate can be found, the function * still returns successfully but cndt_found will be zero. * + * Finally, suitable_cpumap is useful for telling that only the cpus in that + * mask should be considered when generating placement candidates (for + * example because of cpupools). + * * It is up to the function to properly allocate cndt_out (by calling * libxl__numa_candidate_alloc()), while it is the caller that should init * (libxl__numa_candidate_init()) and free (libxl__numa_candidate_dispose()) @@ -2576,6 +2580,7 @@ typedef int (*libxl__numa_candidate_cmpf)(const libxl__numa_candidate *c1, _hidden int libxl__get_numa_candidate(libxl__gc *gc, uint32_t min_free_memkb, int min_cpus, int min_nodes, int max_nodes, + const libxl_bitmap *suitable_cpumap, libxl__numa_candidate_cmpf numa_cmpf, libxl__numa_candidate *cndt_out, int *cndt_found); |