On 02/02/2018 01:08 AM, Michael S. Tsirkin wrote:
On Tue, Jan 30, 2018 at 08:09:19PM +0800, Wei Wang wrote:
Suppose we have both the vhost and virtio-net set up, and vhost pmd <->
virtio-net pmd communication works well. Now, vhost pmd exits (virtio-net
pmd is still there). Some time later, we re-run vhost pmd, the vhost pmd
doesn't know the virtqueue addresses of the virtio-net pmd, unless the
virtio-net pmd reloads to start the 2nd phase of the vhost-user protocol. So
the second run of the vhost pmd won't work.

Any thoughts?

So vhost in qemu must resend all configuration on reconnect.
Does this address the issues?

Yes, but the issues are
1) there is no reconnecting when a pmd exits (the socket connection seems still on at the device layer); 2) If we find a way to break the QEMU layer socket connection when pmd exits and get it reconnect, virtio-net device still won't send all the configure when reconnecting, because socket connecting only triggers phase 1 of vhost-user negotiation (i.e. vhost_user_init). Phase 2 is triggered after the driver loads (i.e. vhost_net_start). If the virtio-net pmd doesn't reload, there are no phase 2 messages (like virtqueue addresses which are allocated by the pmd). I think we need to think more about this before moving forward.


Reply via email to