qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 0/3] dataplane: virtio-blk live migration with x


From: Stefan Hajnoczi
Subject: Re: [Qemu-devel] [PATCH 0/3] dataplane: virtio-blk live migration with x-data-plane=on
Date: Tue, 23 Jul 2013 15:20:31 +0200

On Tue, Jul 23, 2013 at 11:19 AM, yinyin <address@hidden> wrote:
>         during the migration, the source, not the destination, will start 
> dataplane again....

Thanks for explaining.  The backtrace you posted is harmless.  The
code is written to work like this.

I have annotated it explaining what is going on:

virtio_blk_data_plane_start pid:29037 tid:29037
 0x37cf01ecdd [/lib64/libc-2.12.so+0x1ecdd/0x393000]
 0x636954 : main+0x3666/0x369a [/root/dataplane/qemu/x86_64-softmmu/qemu-kvm]
 0x630083 : main_loop+0x5d/0x82 [/root/dataplane/qemu/x86_64-softmmu/qemu-kvm]
 0x5a3834 : main_loop_wait+0x92/0xc9
[/root/dataplane/qemu/x86_64-softmmu/qemu-kvm]
 0x5a2e2c : qemu_iohandler_poll+0xec/0x188
[/root/dataplane/qemu/x86_64-softmmu/qemu-kvm]
 0x76c755 : wait_for_connect+0x170/0x19a
[/root/dataplane/qemu/x86_64-softmmu/qemu-kvm]
 0x5a3dba : tcp_wait_for_connect+0x6e/0x84
[/root/dataplane/qemu/x86_64-softmmu/qemu-kvm]
 0x5a5b16 : migrate_fd_connect+0xc6/0x104
[/root/dataplane/qemu/x86_64-softmmu/qemu-kvm]

Live migration is start on the source.

 0x7740f4 : notifier_list_notify+0x59/0x79
[/root/dataplane/qemu/x86_64-softmmu/qemu-kvm]

Before starting migration we notify listeners that migration is starting.

 0x66a2e4 : virtio_blk_migration_state_changed+0x7c/0x12d
[/root/dataplane/qemu/x86_64-softmmu/qemu-kvm]
 0x667da2 : virtio_blk_data_plane_destroy+0x33/0x70
[/root/dataplane/qemu/x86_64-softmmu/qemu-kvm]

Dataplane is a listener, it wants to know when migration begins.  It will stop
dataplane and switch to regular virtio-blk operation during live migration
iterations (while RAM is being transferred but the VM is still running on the
source).

 0x6682a8 : virtio_blk_data_plane_stop+0x1aa/0x232
[/root/dataplane/qemu/x86_64-softmmu/qemu-kvm]

We are stopping dataplane right here.

 0x59e98c : virtio_pci_set_host_notifier+0x73/0x8e
[/root/dataplane/qemu/x86_64-softmmu/qemu-kvm]
 0x59cdf1 : virtio_pci_set_host_notifier_internal+0x132/0x157
[/root/dataplane/qemu/x86_64-softmmu/qemu-kvm]
 0x6ae1bb : virtio_queue_set_host_notifier_fd_handler+0x7d/0x93
[/root/dataplane/qemu/x86_64-softmmu/qemu-kvm]
 0x6ae128 : virtio_queue_host_notifier_read+0x50/0x66
[/root/dataplane/qemu/x86_64-softmmu/qemu-kvm]
 0x6ac6ff : virtio_queue_notify_vq+0x92/0xa8
[/root/dataplane/qemu/x86_64-softmmu/qemu-kvm]

As part of stopping dataplane we first flush any pending virtqueue kicks.

 0x669802 : virtio_blk_handle_output+0x9c/0x118
[/root/dataplane/qemu/x86_64-softmmu/qemu-kvm]

There was a pending virtqueue kick from the guest so we will complete it before
stopping dataplane.

 0x667ddf : virtio_blk_data_plane_start+0x0/0x31f
[/root/dataplane/qemu/x86_64-softmmu/qemu-kvm]

The dataplane thread was not running so it is temporarily started to process
these final requests.  Once they are finished it will stop again.

Stefan



reply via email to

[Prev in Thread] Current Thread [Next in Thread]