Ping: [PATCH] Qemu: migration: Not bind RAM info with active migration status

Keqian Zhu zhukeqian1 at huawei.com
Thu Jan 7 01:15:03 UTC 2021


Hi Jiri,

On 2021/1/7 2:11, Jiri Denemark wrote:
> On Tue, Jan 05, 2021 at 21:54:05 +0800, Keqian Zhu wrote:
>> On 2021/1/5 21:34, Daniel P. Berrangé wrote:
>>> On Tue, Jan 05, 2021 at 09:28:27PM +0800, Keqian Zhu wrote:
>>>>>> The purpose of QEMU commit 65ace0604551 (migration: add postcopy total blocktime into query-migrate)
>>>>>> is to query some postcopy related information on destination side.
> 
> The total post-copy block time is only computed when postcopy-blocktime
> migration capability is enabled. Libvirt does not support this
> capability so I believe this patch is fixing something that can never
> happen.
> 
>>>>>>
>>>>>> We can call query-migrate on destination side *after* migration complete, thanks.
>>>>>
>>>>> But nothing in libvirt ever tries to call query-migrate on the dest
>>>>> side. 
>>>> Yes, but the dest side does not always act as dest. After migration completion, the dest side enters
>>>> to a normal status and libvirt does not forbid us to query migration status.
>>>>
>>>> Before QEMU commit 65ace0604551, we can successfully query the migration status, which is
>>>> MIGRATION_STATUS_NONE. But this commit will return valid status (MIGRATION_STATUS_COMPLETED)
>>>> without ram info, causing libvirt reports error (migration was active, but no RAM info was set).
>>>>
>>>>>
>>>>> Do you have more patches that add such calls ? If so, then please send a
>>>>> patch series that does the full job.
>>>> I do not add new feature to libvirt, but just manually execute query-migrate on dest side *after
>>>> migration completion* will trigger this problem.
>>>
>>> How are you running query-migrate ? If you're doing that with monitor
>>> command passthrough then we shouldn't need to change the libvirt migration
>>> code.
>> OK. I am not very familiar with libvirt code logic, and my work flow is:
>>
>>      source side                                dest side
>>
>>  virsh start domain_name                            |
>>       |                                             |
>>  virsh migrate --live domain_name       (wait for migrate complete)
>>       |                                             |
>>   (migrate complete)                                |
>>                                         virsh domjobinfo domain_name
>>                                                     |
>>                                  (migration was active, but no RAM info was set)
>>
>> Hope the above work flow helps.
> 
> You're trying to fetch statistics about a completed migration, for which
> virsh domjobinfo --completed should be used.
> 
> Instead of hacking around it, we should properly implement support for
> postcopy-blocktime and fetch the blocktime once migration completes
> internally to make it available via the existing virsh domjobinfo
> --completed command. Libvirt users should not need to know that
> domjobinfo may magically be called even when migration is not running to
> fetch some additional data.
I see what you mean :-). Maybe someone familiar with libvirt is willing to
develop this. And to be frank, the Qemu commit 65ace0604551 is not well
designed ;-) (mix incoming status and outgoing status), which needs improvement.

Cheers,
Keqian

> 
> Jirka
> 
> .
> 





More information about the libvir-list mailing list