[dpdk-dev] [PATCH 2/3] net/virtio_user: fix wrong sequence of messages
Stephen Hemminger
stephen at networkplumber.org
Fri Aug 5 18:36:05 CEST 2016
On Fri, 5 Aug 2016 11:36:42 +0000
Jianfeng Tan <jianfeng.tan at intel.com> wrote:
> When virtio_user is used with VPP's native vhost user, it cannot
> send/receive any packets.
>
> The root cause is that vpp-vhost-user translates the message
> VHOST_USER_SET_FEATURES as puting this device into init state,
> aka, zero all related structures. However, previous code
> puts this message at last in the whole initialization process,
> which leads to all previous information are zeroed.
Not sure what correct behavior is here. It could be that VPP native
vhost user is broken. What does QEMU/KVM vhost do in this case?
I would take that as the authoritative source for semantics.
> To fix this issue, we rearrange the sequence of those messages.
> - step 0, send VHOST_USER_SET_VRING_CALL so that vhost allocates
> virtqueue structures;
> - step 1, send VHOST_USER_SET_FEATURES to confirm the features;
> - step 2, send VHOST_USER_SET_MEM_TABLE to share mem regions;
> - step 3, send VHOST_USER_SET_VRING_NUM, VHOST_USER_SET_VRING_BASE,
> VHOST_USER_SET_VRING_ADDR, VHOST_USER_SET_VRING_KICK for each
> queue;
> - ...
>
> Fixes: 37a7eb2ae816 ("net/virtio-user: add device emulation layer")
More information about the dev
mailing list