[dpdk-dev] [PATCH v2] examples/vhost: workaround qemu abort
Tiwei Bie
tiwei.bie at intel.com
Wed Jul 25 04:18:51 CEST 2018
On Wed, Jul 25, 2018 at 05:56:54PM +0800, Marvin Liu wrote:
> Current qemu vhost net ring start has a dependency on feature bit
> VHOST_USER_F_PROTOCOL_FEATURES. If vhost device start without it, stop
> action will be skipped. Consequently, same ioevent fd will be added
> twice after reloading driver and then cause qemu abort. However, ring
> should be initialized in an enabled state when this feature bit not
> negotiated. Work around qemu issue by enabling this feature bit in vhost
> user backend.
>
> Signed-off-by: Marvin Liu <yong.liu at intel.com>
>
> diff --git a/examples/vhost/main.c b/examples/vhost/main.c
> index 2175c1186..4b87331fc 100644
> --- a/examples/vhost/main.c
> +++ b/examples/vhost/main.c
> @@ -1519,8 +1519,12 @@ main(int argc, char *argv[])
> "vhost driver register failure.\n");
> }
>
> - if (builtin_net_driver)
> + if (builtin_net_driver) {
> rte_vhost_driver_set_features(file, VIRTIO_NET_FEATURES);
> + /* Workaround for qemu vhost net device startup */
> + rte_vhost_driver_set_features(file,
> + 1ULL << VHOST_USER_F_PROTOCOL_FEATURES);
rte_vhost_driver_set_features() will overwrite the
existing value. You need to OR VIRTIO_NET_FEATURES
and (1ULL << VHOST_USER_F_PROTOCOL_FEATURES).
> + }
>
> if (mergeable == 0) {
> rte_vhost_driver_disable_features(file,
> --
> 2.17.0
>
More information about the dev
mailing list