[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen master] tools/libxc: Introduce XC_CPUPOOL_POOLID_ANY
commit f5cfc3955ec1559ef7f9979dd7b98659d4be5e98 Author: George Dunlap <george.dunlap@xxxxxxxxxx> AuthorDate: Wed Feb 15 17:08:10 2017 +0000 Commit: Wei Liu <wei.liu2@xxxxxxxxxx> CommitDate: Thu Feb 16 12:47:10 2017 +0000 tools/libxc: Introduce XC_CPUPOOL_POOLID_ANY Callers to xc_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, XC_CPUPOOL_POOLID_ANY, to indicate this instead. Have it be the default for the python bindings. Manually translate it, even though it's the same underlying value, because we don't yet have a relaible way of enforcing that these values are the same. Signed-off-by: George Dunlap <george.dunlap@xxxxxxxxxx> Reviewed-by: Dario Faggioli <dario.faggioli@xxxxxxxxxx> Acked-by: Wei Liu <wei.liu2@xxxxxxxxxx> --- tools/libxc/include/xenctrl.h | 2 ++ tools/libxc/xc_cpupool.c | 2 +- tools/libxl/libxl_cpupool.c | 7 ++++++- tools/python/xen/lowlevel/xc/xc.c | 2 +- 4 files changed, 10 insertions(+), 3 deletions(-) diff --git a/tools/libxc/include/xenctrl.h b/tools/libxc/include/xenctrl.h index 85d7fe5..927e373 100644 --- a/tools/libxc/include/xenctrl.h +++ b/tools/libxc/include/xenctrl.h @@ -1052,6 +1052,8 @@ typedef struct xc_cpupoolinfo { xc_cpumap_t cpumap; } xc_cpupoolinfo_t; +#define XC_CPUPOOL_POOLID_ANY 0xFFFFFFFF + /** * Create a new cpupool. * diff --git a/tools/libxc/xc_cpupool.c b/tools/libxc/xc_cpupool.c index 70011d1..fbd8cc9 100644 --- a/tools/libxc/xc_cpupool.c +++ b/tools/libxc/xc_cpupool.c @@ -43,7 +43,7 @@ int xc_cpupool_create(xc_interface *xch, sysctl.cmd = XEN_SYSCTL_cpupool_op; sysctl.u.cpupool_op.op = XEN_SYSCTL_CPUPOOL_OP_CREATE; - sysctl.u.cpupool_op.cpupool_id = (*ppoolid == 0) ? + sysctl.u.cpupool_op.cpupool_id = (*ppoolid == XC_CPUPOOL_POOLID_ANY) ? XEN_SYSCTL_CPUPOOL_PAR_ANY : *ppoolid; sysctl.u.cpupool_op.sched_id = sched_id; if ( (err = do_sysctl_save(xch, &sysctl)) != 0 ) diff --git a/tools/libxl/libxl_cpupool.c b/tools/libxl/libxl_cpupool.c index f3d22b1..0ff8724 100644 --- a/tools/libxl/libxl_cpupool.c +++ b/tools/libxl/libxl_cpupool.c @@ -137,6 +137,10 @@ int libxl_cpupool_create(libxl_ctx *ctx, const char *name, int i; xs_transaction_t t; char *uuid_string; + uint32_t xcpoolid; + + /* Zero means "choose a poolid for me" */ + xcpoolid = (*poolid) ? (*poolid) : XC_CPUPOOL_POOLID_ANY; uuid_string = libxl__uuid2string(gc, *uuid); if (!uuid_string) { @@ -144,12 +148,13 @@ int libxl_cpupool_create(libxl_ctx *ctx, const char *name, return ERROR_NOMEM; } - rc = xc_cpupool_create(ctx->xch, poolid, sched); + rc = xc_cpupool_create(ctx->xch, &xcpoolid, sched); if (rc) { LOGEV(ERROR, rc, "Could not create cpupool"); GC_FREE; return ERROR_FAIL; } + *poolid = xcpoolid; libxl_for_each_bit(i, cpumap) if (libxl_bitmap_test(&cpumap, i)) { diff --git a/tools/python/xen/lowlevel/xc/xc.c b/tools/python/xen/lowlevel/xc/xc.c index 39be1d5..9e93d49 100644 --- a/tools/python/xen/lowlevel/xc/xc.c +++ b/tools/python/xen/lowlevel/xc/xc.c @@ -1715,7 +1715,7 @@ static PyObject *pyxc_cpupool_create(XcObject *self, PyObject *args, PyObject *kwds) { - uint32_t cpupool = 0, sched = XEN_SCHEDULER_CREDIT; + uint32_t cpupool = XC_CPUPOOL_POOLID_ANY, sched = XEN_SCHEDULER_CREDIT; static char *kwd_list[] = { "pool", "sched", NULL }; -- generated by git-patchbot for /home/xen/git/xen.git#master _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxx https://lists.xenproject.org/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |