[dpdk-dev] [PATCH v3] net/virtio-user: fix multiple queues fail in server mode

Tiwei Bie tiwei.bie at intel.com
Fri May 11 04:49:51 CEST 2018


On Fri, May 11, 2018 at 10:12:47AM +0800, zhiyong.yang at intel.com wrote:
[...]
> @@ -447,11 +447,17 @@ virtio_user_handle_mq(struct virtio_user_dev *dev, uint16_t q_pairs)
>  		return -1;
>  	}
>  
> -	for (i = 0; i < q_pairs; ++i)
> -		ret |= dev->ops->enable_qp(dev, i, 1);
> -	for (i = q_pairs; i < dev->max_queue_pairs; ++i)
> -		ret |= dev->ops->enable_qp(dev, i, 0);
> -
> +	/* Server mode can't enable queue pairs if vhostfd is invalid,
> +	 * always return 0 in this case.
> +	 */
> +	if (dev->vhostfd >= 0)  {

There are two spaces between ')' and '{'.

> +		for (i = 0; i < q_pairs; ++i)
> +			ret |= dev->ops->enable_qp(dev, i, 1);
> +		for (i = q_pairs; i < dev->max_queue_pairs; ++i)
> +			ret |= dev->ops->enable_qp(dev, i, 0);
> +	} else if (!dev->is_server) {
> +		ret = ~0;
> +	}
>  	dev->queue_pairs = q_pairs;
>  
>  	return ret;
[...]
> @@ -37,6 +38,25 @@ virtio_user_server_reconnect(struct virtio_user_dev *dev)
>  		return -1;
>  
>  	dev->vhostfd = connectfd;
> +	if (dev->ops->send_request(dev, VHOST_USER_GET_FEATURES,
> +				   &dev->device_features) < 0) {
> +		PMD_INIT_LOG(ERR, "get_features failed: %s",
> +			     strerror(errno));
> +		return -1;
> +	}
> +
> +	features &= ~dev->device_features;
> +	/* For following bits, vhost-user doesn't really need to know */
> +	features &= ~(1ull << VIRTIO_NET_F_MAC);
> +	features &= ~(1ull << VIRTIO_NET_F_CTRL_VLAN);
> +	features &= ~(1ull << VIRTIO_NET_F_CTRL_MAC_ADDR);
> +	features &= ~(1ull << VIRTIO_NET_F_STATUS);
> +	if (features)
> +		PMD_INIT_LOG(ERR, "WARNING: Some features 0x%" PRIx64 "are not supported by vhost-user!",

A space is missing before "are not ...". Should be: " are not ..."


Other than above small typos,

Reviewed-by: Tiwei Bie <tiwei.bie at intel.com>



More information about the dev mailing list