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