Subject: Re: Is fallback vhost_net to qemu for live migrate available？

From: Qin Chuanyu <[email-masked]>
Date: Tue, 27 Aug 2013 15:22:15 +0800

On 2013/8/27 15:16, Michael S. Tsirkin wrote:
> On Tue, Aug 27, 2013 at 03:04:54PM +0800, Qin Chuanyu wrote:
>> On 2013/8/27 12:19, Michael S. Tsirkin wrote:
>>> On Tue, Aug 27, 2013 at 11:32:31AM +0800, Qin Chuanyu wrote:
>>>> Hi all
>>>>
>>>> I am participating in a project which try to port vhost_net on Xen。
>>>>
>>>> By change the memory copy and notify mechanism ，currently
>>>> virtio-net with vhost_net could run on Xen with good
>>>> performance。TCP receive throughput of single vnic from 2.77Gbps up
>>>> to 6Gps。In VM receive side，I instead grant_copy with grant_map +
>>>> memcopy，it efficiently reduce the cost of grant_table spin_lock of
>>>> dom0，So the hole server TCP performance from 5.33Gps up to 9.5Gps。
>>>>
>>>> Now I am consider the live migrate of vhost_net on Xen，vhost_net
>>>> use vhost_log for live migrate on Kvm，but qemu on Xen havn't manage
>>>> the hole memory of VM，So I am trying to fallback datapath from
>>>> vhost_net to qemu when doing live migrate ，and fallback datapath
>>> >from qemu to
>>>> vhost_net again after vm migrate to new server。
>>>>
>>>> My question is：
>>>> 	why didn't vhost_net do the same fallback operation for live
>>>> migrate on KVM，but use vhost_log to mark the dirty page？
>>>> 	Is there any mechanism fault for the idea of fallback datapath from
>>>> vhost_net to qemu for live migrate？
>>>>
>>>> any question about the detail of vhost_net on Xen is welcome。
>>>>
>>>> Thanks
>>>>
>>>
>>> It should work, in practice.
>>>
>>> However, one issue with this approach that I see is that you
>>> are running two instances of virtio-net on the host:
>>> qemu and vhost-net, doubling your security surface
>>> for guest to host attack.
>>>
>>> I don't exactly see why does it matter that qemu doesn't manage
>>> the whole memory of a VM - vhost only needs to log
>>> memory writes that it performs.
>>>
>>>
>>> .
>>>
>> Thanks for your reply.
>>
>> In fact，I am not sure that whether vhost_log could work on Xen live
>> migrate or not. Yes，vhost_sync_dirty_bitmap work well on Kvm，but
>> vhost_net havn't run on Xen before，although the method
>> vhost_dev_sync_region -> memory_region_set_dirty ->
>> xen_modified_memory call sequence exist.
>>
>> Have you considered the scene that vhost_migration_log code running
>> on Xen？ If yes，it sames much easier then fallback datapath from
>> vhost_net to qemu for live migrate.
>>
>
> I never looked at how Xen live migration works with QEMU so I don't
> know.
>
>
> .
>
Thanks

I will try vhost_migration_log for live migration first，if there are 
some further result，I would let you know.