[dpdk-dev] [PATCH 3/3] net/virtio: reject unsupported Rx multi queue modes

Andrew Rybchenko arybchenko at solarflare.com
Wed Oct 9 11:00:28 CEST 2019


On 10/9/19 11:43 AM, Tiwei Bie wrote:
> On Wed, Oct 09, 2019 at 11:04:38AM +0300, Andrew Rybchenko wrote:
>> On 10/8/19 8:46 AM, Tiwei Bie wrote:
>>> On Tue, Oct 01, 2019 at 04:44:31PM +0100, Andrew Rybchenko wrote:
>>>> From: Dilshod Urazov <Dilshod.Urazov at oktetlabs.ru>
>>>>
>>>> This driver supports none of DCB, RSS or VMDQ modes,
>>>> therefore must check and return error if configured incorrectly.
>>>>
>>>> Fixes: c1f86306a026 ("virtio: add new driver")
>>>> Cc: stable at dpdk.org
>>>>
>>>> Signed-off-by: Dilshod Urazov <Dilshod.Urazov at oktetlabs.ru>
>>>> Signed-off-by: Andrew Rybchenko <arybchenko at solarflare.com>
>>>> ---
>>>>    drivers/net/virtio/virtio_ethdev.c | 7 +++++++
>>>>    1 file changed, 7 insertions(+)
>>>>
>>>> diff --git a/drivers/net/virtio/virtio_ethdev.c b/drivers/net/virtio/virtio_ethdev.c
>>>> index 7261109dd..0af4fc392 100644
>>>> --- a/drivers/net/virtio/virtio_ethdev.c
>>>> +++ b/drivers/net/virtio/virtio_ethdev.c
>>>> @@ -2071,6 +2071,13 @@ virtio_dev_configure(struct rte_eth_dev *dev)
>>>>    	PMD_INIT_LOG(DEBUG, "configure");
>>>>    	req_features = VIRTIO_PMD_DEFAULT_GUEST_FEATURES;
>>>> +	if (rxmode->mq_mode != ETH_MQ_RX_NONE) {
>>>> +		PMD_DRV_LOG(ERR,
>>>> +			"Unsupported Rx multi queue mode %d",
>>>> +			rxmode->mq_mode);
>>>> +		return -EINVAL;
>>>> +	}
>>> We need similar checks for Tx as well.
>> OK, I'll add.
>>
>> However, I'm not 100% sure about RSS. Yes, I know that virtio has
>> no RSS configuration support, but it looks possible to have multi queue
>> in vhost-net case.
> Yeah, it's possible to have MQ in virtio.
> The RSS support in virtio is still WIP.
> https://github.com/oasis-tcs/virtio-spec/issues/48

Thanks for the link. So, may be ETH_MQ_RX_RSS should be accepted
as well, but attempts to configure RSS rejected?
Yes, it is a bit strange to accept RSS with empty rss_hf etc, but
at least it is exactly what net/virtio can do.

And one more thought...
It looks like if more than one Rx queue is configured, mq_mode must
be ETH_MQ_RX_RSS and must not be ETH_MQ_RX_NONE.



More information about the dev mailing list