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

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

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.