[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 1/2] libxl: modify domain config when moving domain to another cpupool
On Tue, Oct 02, 2018 at 04:19:33PM +0200, Juergen Gross wrote: > Today the domain config info contains the cpupool name the domain was > started in only if the cpupool was specified at domain creation. Moving > the domain to another cpupool later won't change that information. > > Correct that by modifying the domain config accordingly. > > Signed-off-by: Juergen Gross <jgross@xxxxxxxx> > --- > tools/libxl/libxl_cpupool.c | 28 +++++++++++++++++++++++++--- > 1 file changed, 25 insertions(+), 3 deletions(-) > > diff --git a/tools/libxl/libxl_cpupool.c b/tools/libxl/libxl_cpupool.c > index 85b06882db..92cf29bc6b 100644 > --- a/tools/libxl/libxl_cpupool.c > +++ b/tools/libxl/libxl_cpupool.c > @@ -430,17 +430,39 @@ out: > int libxl_cpupool_movedomain(libxl_ctx *ctx, uint32_t poolid, uint32_t domid) > { > GC_INIT(ctx); > + libxl_domain_config d_config; > + libxl__domain_userdata_lock *lock = NULL; > int rc; > > + libxl_domain_config_init(&d_config); > + > rc = xc_cpupool_movedomain(ctx->xch, poolid, domid); > if (rc) { > LOGEVD(ERROR, rc, domid, "Error moving domain to cpupool"); > - GC_FREE; > - return ERROR_FAIL; > + rc = ERROR_FAIL; > + goto out; > + } > + > + lock = libxl__lock_domain_userdata(gc, domid); > + if (!lock) { > + rc = ERROR_LOCK_FAIL; > + goto out; > } It is better to move the lock before calling xc_cpupool_movedomain to avoid races when there are multiple callers of libxl_cpupool_movedomain. Wei. > > + rc = libxl__get_domain_configuration(gc, domid, &d_config); > + if (rc) > + goto out; > + > + free(d_config.c_info.pool_name); > + d_config.c_info.pool_name = libxl_cpupoolid_to_name(ctx, poolid); > + > + rc = libxl__set_domain_configuration(gc, domid, &d_config); > + > +out: > + if (lock) libxl__unlock_domain_userdata(lock); > + libxl_domain_config_dispose(&d_config); > GC_FREE; > - return 0; > + return rc; > } > > /* > -- > 2.16.4 > _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |