On Thu, Sep 21, 2017 at 17:32:33 +0300, Nikolay Shirokovskiy wrote:
>
>
> On 21.09.2017 17:24, Jiri Denemark wrote:
>> 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.
>
> Is g06f75ff2cb commit in public libvirt tree? I can't see it even on
https://libvirt.org/git/?p=libvirt.git;a=summary.
Note that 'g' isn't really a hex digit as it's usual in commit hashes.
That's a tricky part of the git describe string.
https://libvirt.org/git/?p=libvirt.git;a=commit;h=06f75ff2cb
commit 06f75ff2cb292e2658b4f2f6949c700550006272
Author: Jiri Denemark <jdenemar(a)redhat.com>
AuthorDate: Fri Jun 30 16:55:20 2017 +0200
Commit: Jiri Denemark <jdenemar(a)redhat.com>
CommitDate: Thu Sep 21 15:27:39 2017 +0200
qemu: Don't update CPU when formatting live def
Since commit v2.2.0-199-g7ce711a30e libvirt stores an updated guest CPU
in domain's live definition and there's no need to update it every time
we want to format the definition. The commit itself tried to address
this in qemuDomainFormatXML, but forgot to fix qemuDomainDefFormatLive.
Not to mention that masking a previously set flag is only acceptable if
the flag was set by a public API user. Internally, libvirt should have
never set the flag in the first place.
https://bugzilla.redhat.com/show_bug.cgi?id=1485022
Signed-off-by: Jiri Denemark <jdenemar(a)redhat.com>