Thanks Eric.

So, I need to look at QEMU. Do you know which files/functions should I look at? 

​--
Faiz​


On Thu, Mar 20, 2014 at 12:41 PM, Eric Blake <eblake@redhat.com> wrote:
On 03/20/2014 10:05 AM, Faizul Bari wrote:
> ​Hello,
>
> I have been trying to track different phases of a live migration process. I
> am using libvirt ​with qemu-kvm. I am issuing migration commands using
> virsh.
>
> Now, I want to measure the time spent in each phase of live migration,
> e.g., pre-copy and stop-copy. I stumbled upon the file qemu_driver.c. It
> has functions like
>
> qemudDomainMigratePrepare2
> qemudDomainMigratePerform
> qemudDomainMigrateFinish2

These functions perform different handshakes between the two libvirt
ends of the migration.  However, the entire migration is done by a
single qemu monitor command, and it is that monitor command that further
divides the work into phases such as pre-copy and stop-copy.

>
> I want to know whether qemudDomainMigratePerform and
> qemudDomainMigrateFinish2 directly map to the pre-copy and stop-copy phase?
> or the qemudDomainMigratePerform function performs both of them?

The MigratePerform function is the one place that calls the qemu monitor
command.  I know there have been proposals upstream in qemu to add
additional statistics in 'query-migrate' monitor command; perhaps there
is still more work needed in libvirt to grab those additional statistics
in a manner that can be exposed to the user.

--
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org