
On Thu, Sep 21, 2017 at 16:39:39 +0300, Nikolay Shirokovskiy wrote:
Imagine if we use 'virsh dumpxml --migratable' for offline domain to get config to tweak before migration. Currenly cpu section will be expanded, host-cpu mode turns into custom and migration fails because of ABI check.
Looks like ABI check does not make much sence for offline migration but we don't want host-cpu mode to turn into custom in the first place. Using --migratable is reasonable in this case because this flags makes changes for inactive configs too like removing automatically added parts that old versions can not handle.
I suggest not to update cpu for inactive configs. This appoach is coherent with the way migration works for inactive configs in case it is not specified externally to migration: function qemuMigrationCookieXMLFormat don't expand cpu too.
Adding flag for active configs is useless because qemuDomainFormatXML will clear it in this case.
Not anymore, see commit v3.7.0-151-g06f75ff2cb. ...
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index d9dff93..3223554 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -6993,9 +6993,6 @@ static char if (qemuDomainUpdateCurrentMemorySize(driver, vm) < 0) goto cleanup;
- if ((flags & VIR_DOMAIN_XML_MIGRATABLE)) - flags |= VIR_DOMAIN_XML_UPDATE_CPU; - ret = qemuDomainFormatXML(driver, vm, flags);
cleanup:
This area of code changed recently and it looks like the following now: if ((flags & VIR_DOMAIN_XML_MIGRATABLE)) flags |= QEMU_DOMAIN_FORMAT_LIVE_FLAGS; /* The CPU is already updated in the domain's live definition, we need to * ignore the VIR_DOMAIN_XML_UPDATE_CPU flag. */ if (virDomainObjIsActive(vm) && !(flags & VIR_DOMAIN_DEF_FORMAT_INACTIVE)) flags &= ~VIR_DOMAIN_XML_UPDATE_CPU; But even before the changes, the two lines you are removing were if ((flags & VIR_DOMAIN_XML_MIGRATABLE)) flags |= QEMU_DOMAIN_FORMAT_LIVE_FLAGS; since commit v0.10.2-133-g28f8dfdccc, i.e., for the last 5 years. I guess you have some local changes applied to the libvirt tree. Jirka