|
[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 |