tas
tas copied to clipboard
tas start failed with virtio-net
when start tas with multi queue virtio_net, it start failed [root@localhost tas]# ./tas --ip-addr=192.168.122.123/24 --fp-no-xsumoffload Warning: NIC does not support all requested RSS hash functions. virtio_dev_configure(): Unsupported Rx multi queue mode 1 Port0 dev_configure = -22 rte_eth_dev_configure failed network init failed
looks like the default port_conf->rxmode not change to ETH_MQ_RX_NONE when using virtio_net
but virtio_dev_configure() check failed if it's not ETH_MQ_RX_NONE
static int
virtio_dev_configure(struct rte_eth_dev *dev)
{
......
const struct rte_eth_rxmode *rxmode = &dev->data->dev_conf.rxmode;
const struct rte_eth_txmode *txmode = &dev->data->dev_conf.txmode;
struct virtio_hw *hw = dev->data->dev_private;
uint32_t ether_hdr_len = RTE_ETHER_HDR_LEN + VLAN_TAG_LEN +
hw->vtnet_hdr_size;
uint64_t rx_offloads = rxmode->offloads;
uint64_t tx_offloads = txmode->offloads;
uint64_t req_features;
int ret;
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;
}
if (txmode->mq_mode != ETH_MQ_TX_NONE) {
PMD_DRV_LOG(ERR,
"Unsupported Tx multi queue mode %d",
txmode->mq_mode);
return -EINVAL;
}
......
BTW, my dpdk is 19.11
commit b9b10ddb4292f2bc5524ae9f427a2795514eff02 (HEAD -> v19.11, origin/main, origin/HEAD, main)
Author: Thomas Monjalon <[email protected]>
Date: Wed Aug 12 11:15:30 2020 +0200
switch default git branch name to main
The default git branch of the main DPDK repository has been renamed
from master to main.
Signed-off-by: Thomas Monjalon <[email protected]>
Acked-by: Bruce Richardson <[email protected]>
commit da816fb1ff3435eb6f39e62ee4765930ef0a160e
Author: Thomas Monjalon <[email protected]>
Date: Wed Aug 12 09:49:00 2020 +0200
maintainers: remove QoS and pipeline repositories
The git trees dpdk-next-qos and dpdk-next-pipeline were created
to share the load of patches merging.
It has been decided in the Technical Board that the load is not big
enough to justify keeping these repositories.
The patches for ethdev TM and MTR will be managed in dpdk-next-net.
The sched and meter libraries will be managed in the main tree.
The packet framework will be managed in the main tree as well.
Signed-off-by: Thomas Monjalon <[email protected]>
Acked-by: Bruce Richardson <[email protected]>
commit 3eecaba90a995ec30b502cded921c8a49e50cffb
Author: Ray Kinsella <[email protected]>
Date: Wed Aug 12 12:26:02 2020 +0100
doc: describe process for new ABI versions
Added a section describing new ABI versions, this provides pointers to
the relevant amended rules that apply during the abi breakage window.
Also remove the large note at the head of the ABI policy describing the
ABI stability process that has taken place over the previous year.
Signed-off-by: Ray Kinsella <[email protected]>
commit 460cb707911e8209efecd52bd7748648f6754c4c
Author: Adam Dybkowski <[email protected]>
Date: Mon Jul 27 11:41:13 2020 +0200
doc: announce renaming in crypto scheduler API
This patch adds a deprecation notice about upcoming changes
in public API of the Scheduler PMD.
Signed-off-by: Adam Dybkowski <[email protected]>
Acked-by: Fan Zhang <[email protected]>
Acked-by: Thomas Monjalon <[email protected]>
Acked-by: Akhil Goyal <[email protected]>
it is commited in 2019.10.9
commit 13b3137f3b7c8f866947a9b34e06a8aec0d084f7
Author: Dilshod Urazov <[email protected]>
Date: Wed Oct 9 13:32:07 2019 +0100
net/virtio: reject unsupported Rx multi-queue modes
This driver supports none of DCB, RSS or VMDQ modes, therefore must
check and return error if configured incorrectly.
Virtio can distribute Rx packets across multi-queue, but there is
no controls (algorithm, redirection table, hash function) except
number of Rx queues and ETH_MQ_RX_NONE is the best fit meaning
no method is enforced on how to route packets to MQs.
Fixes: c1f86306a026 ("virtio: add new driver")
Cc: [email protected]
Signed-off-by: Dilshod Urazov <[email protected]>
Signed-off-by: Andrew Rybchenko <[email protected]>
Reviewed-by: Maxime Coquelin <[email protected]>
diff --git a/drivers/net/virtio/virtio_ethdev.c b/drivers/net/virtio/virtio_ethdev.c
index 0a2ed2e50..76bd40a3e 100644
--- a/drivers/net/virtio/virtio_ethdev.c
+++ b/drivers/net/virtio/virtio_ethdev.c
@@ -2066,6 +2066,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;
+ }
+
if (dev->data->dev_conf.intr_conf.rxq) {
ret = virtio_init_device(dev, hw->req_guest_features);
if (ret < 0)
Good catch. As long as auto-scaling is disabled (that currently relies on the RSS reta) ETH_MQ_RX_NONE should be acceptable. So I think my fix would be to add an if that checks if RSS is supported, and if not, proceed with mq_rx_none assuming auto-scaling is disabled on the command line. I'll try to implement a fix hopefully in the next few days. Feel free to submit a pull request if you get to it earlier. As a workaround just hardcoding mq_rx_none should probably work. (just disable auto scaling too on the command line as it won't work)
I tried this before, it actually works with autoscaling disabled via command line + mq_rx_none