From 25ee478662d378ec2b24f517fb6d8d4829b885ff Mon Sep 17 00:00:00 2001 From: Igor Druzhinin Date: Wed, 3 Feb 2021 20:07:04 +0000 Subject: [PATCH] tools/libxl: only set viridian flags on new domains Domains migrating or restoring should have viridian HVM param key in the migration stream already and setting that twice results in Xen returing -EEXIST on the second attempt later (during migration stream parsing) in case the values don't match. That causes migration/restore operation to fail at destination side. That issue is now resurfaced by the latest commits (983524671 and 7e5cffcd1e) extending default viridian feature set making the values from the previous migration streams and those set at domain construction different. Suggested-by: Andrew Cooper Signed-off-by: Igor Druzhinin Reviewed-by: Andrew Cooper Release-Acked-by: Ian Jackson --- tools/libs/light/libxl_x86.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tools/libs/light/libxl_x86.c b/tools/libs/light/libxl_x86.c index 91169d1045..58187ed760 100644 --- a/tools/libs/light/libxl_x86.c +++ b/tools/libs/light/libxl_x86.c @@ -468,7 +468,10 @@ int libxl__arch_domain_create(libxl__gc *gc, (ret = hvm_set_conf_params(gc, domid, info)) != 0) goto out; - if (info->type == LIBXL_DOMAIN_TYPE_HVM && + /* Viridian flags are already a part of the migration stream so set + * them here only for brand new domains. */ + if (!state->restore && + info->type == LIBXL_DOMAIN_TYPE_HVM && (ret = hvm_set_viridian_features(gc, domid, info)) != 0) goto out; -- 2.39.5