[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 2/2] tools/libxl: Introduce LIBXL_CPUPOOL_POOLID_ANY
Callers to libxl_cpupool_create() can either request a specific pool id, or request that Xen do it for them. But at the moment, the "automatic" selection is indicated by using a magic value, 0. This is undesirable both because it doesn't obviously have meaning, but also because '0' is a valid cpupool (albeit one which at the moment can't be changed). Introduce a constant, LIBXL_CPUPOOL_POOLID_ANY, to indicate this instead. Still accept '0' as meaning "ANY" for backwards compatibility. Signed-off-by: George Dunlap <george.dunlap@xxxxxxxxxx> Reviewed-by: Dario Faggioli <dario.faggioli@xxxxxxxxxx> --- v2: Rebase over libxl.c-split series CC: Ian Jackson <ian.jackson@xxxxxxxxxx> CC: Wei Liu <wei.liu2@xxxxxxxxxx> CC: Juergen Gross <jgross@xxxxxxxx> CC: Dario Faggioli <dario.faggioli@xxxxxxxxxx> CC: Ronald Rojas <ronladred@xxxxxxxxx> --- tools/libxl/libxl.h | 6 ++++++ tools/libxl/libxl_cpupool.c | 8 ++++++-- tools/libxl/xl_cmdimpl.c | 2 +- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/tools/libxl/libxl.h b/tools/libxl/libxl.h index 3924464..d5559c0 100644 --- a/tools/libxl/libxl.h +++ b/tools/libxl/libxl.h @@ -2086,6 +2086,12 @@ int libxl_tmem_shared_auth(libxl_ctx *ctx, uint32_t domid, char* uuid, int libxl_tmem_freeable(libxl_ctx *ctx); int libxl_get_freecpus(libxl_ctx *ctx, libxl_bitmap *cpumap); + +/* + * Set poolid to LIBXL_CPUOOL_POOLID_ANY to have Xen choose a + * free poolid for you. + */ +#define LIBXL_CPUPOOL_POOLID_ANY 0xFFFFFFFF int libxl_cpupool_create(libxl_ctx *ctx, const char *name, libxl_scheduler sched, libxl_bitmap cpumap, libxl_uuid *uuid, diff --git a/tools/libxl/libxl_cpupool.c b/tools/libxl/libxl_cpupool.c index 0ff8724..ef9ff84 100644 --- a/tools/libxl/libxl_cpupool.c +++ b/tools/libxl/libxl_cpupool.c @@ -139,8 +139,12 @@ int libxl_cpupool_create(libxl_ctx *ctx, const char *name, char *uuid_string; uint32_t xcpoolid; - /* Zero means "choose a poolid for me" */ - xcpoolid = (*poolid) ? (*poolid) : XC_CPUPOOL_POOLID_ANY; + /* Accept '0' as 'any poolid' for backwards compatibility */ + if ( *poolid == LIBXL_CPUPOOL_POOLID_ANY + || *poolid == 0 ) + xcpoolid = XC_CPUPOOL_POOLID_ANY; + else + xcpoolid = *poolid; uuid_string = libxl__uuid2string(gc, *uuid); if (!uuid_string) { diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c index 37ebdce..0add5dc 100644 --- a/tools/libxl/xl_cmdimpl.c +++ b/tools/libxl/xl_cmdimpl.c @@ -8368,7 +8368,7 @@ int main_cpupoolcreate(int argc, char **argv) printf("number of cpus: %d\n", n_cpus); if (!dryrun_only) { - poolid = 0; + poolid = LIBXL_CPUPOOL_POOLID_ANY; if (libxl_cpupool_create(ctx, name, sched, cpumap, &uuid, &poolid)) { fprintf(stderr, "error on creating cpupool\n"); goto out_cfg; -- 2.1.4 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |