> I've asked several times whether vhost-user support live migration? vhost-user can support live migration but it needs such fixes of Qemu. I have found the issue and develop my patch by trying live migration with vhost user.
> I think Jason is pointing out that your patch lacks support for guests > that do not negotiate VIRTIO_NET_F_GUEST_ANNOUNCE. I have understood the issue with old guest pointed by Jason. I have thinking about the best way to do solve it and any advices are welcome. > Please send each patch revision as a new email thread. This makes it > easy to see your new patches in threaded email clients. I have used the same email thread as it is a reworked of my first patch. I will create a new email thread for the next version. On Mon, Jun 8, 2015 at 3:32 PM, Stefan Hajnoczi <stefa...@redhat.com> wrote: > On Mon, Jun 08, 2015 at 10:21:38AM +0200, Thibaut Collet wrote: > > Hi, > > > > My understanding of gratuitous packet with virtio for any backend (vhost > > user or other): > > - When the VM is loaded (first start or migration) the virtio net > > interfaces are loaded ( virtio_net_load_device function in > > hw/net/virtio-net.c) > > - If the guest has the VIRTIO_NET_F_GUEST_ANNOUNCE capability, request to > > send gratuitous packet is done. > > > > 1. To enable gratuitous packet through this mechanism I have added > > VIRTIO_NET_F_GUEST_ANNOUNCE > > capability to hw/net/vhost_net.c. So host and guest can negotiate this > > feature when vhost-user is used. > > > > 2. self announce occurs in case of live migration. During a live > migration > > a GARP is sent to all net backend through a queue dedicated to the net > > backend. > > But for vhost-user: > > - this operation is not possible (vhost-user has no queue) > > - it is already done with the previous mechanism. > > Rather to define a queue to vhost user and notify twice the guest to > > send gratuitous packet I have disable GARP from self announce and use > only > > the first mechanism for that. > > > > I have tested my modifications with guest that supports > > VIRTIO_NET_F_GUEST_ANNOUNCE and vhost-user on the host. After a live > > migration I have the GARP from the guest. > > I think Jason is pointing out that your patch lacks support for guests > that do not negotiate VIRTIO_NET_F_GUEST_ANNOUNCE. > > If the guest does not set the feature bit then packets might continue to > get forwarded to the old host. > > Perhaps the correct place to implement this is in the virtio-net.c > device instead of in vhost-user.c. The non-vhost-user case should also > skip sending two ARP packets. > > BUT before we go any further: > > I've asked several times whether vhost-user support live migration? > > You didn't answer that question. Fixing this issue only makes sense if > vhost-user live migration is supported. > > Stefan >