|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 1/2] libxl: modify domain config when moving domain to another cpupool
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;
}
+ 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 |