[dpdk-dev,v3] net/ixgbe: fix l3fwd start failed on VF

Message ID 20171120022557.151461-1-yanglong.wu@intel.com
State Superseded, archived
Delegated to: Helin Zhang
Headers show

Checks

Context Check Description
ci/Intel-compilation success Compilation OK
ci/checkpatch success coding style OK

Commit Message

Yanglong Wu Nov. 20, 2017, 2:25 a.m.
VF can't run in multi queue mode, if nb_q_per_pool was set as 1.
Nb_q_per_pool is passed through to max_rx_q and max_tx_q in VF.
So if nb_q_per_pool is equal to 1, max_rx_q and max_tx_q can't be more
than 1 and VF multi queue mode will fail.

Fixes: 27b609cbd1c6 (ethdev: move the multi-queue mode check)

Signed-off-by: Yanglong Wu <yanglong.wu@intel.com>
---
 drivers/net/ixgbe/ixgbe_ethdev.c | 2 --
 1 file changed, 2 deletions(-)

Comments

Yang, Zhiyong Nov. 20, 2017, 2:37 a.m. | #1
Hi Yanglong,

You should write something after SoB,  which makes reviewer easier to know
What changes are since last version.

Thanks
Zhiyong

> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Yanglong Wu
> Sent: Monday, November 20, 2017 10:26 AM
> To: dev@dpdk.org
> Cc: Wu, Yanglong <yanglong.wu@intel.com>
> Subject: [dpdk-dev] [PATCH v3] net/ixgbe: fix l3fwd start failed on VF
> 
> VF can't run in multi queue mode, if nb_q_per_pool was set as 1.
> Nb_q_per_pool is passed through to max_rx_q and max_tx_q in VF.
> So if nb_q_per_pool is equal to 1, max_rx_q and max_tx_q can't be more than 1
> and VF multi queue mode will fail.
> 
> Fixes: 27b609cbd1c6 (ethdev: move the multi-queue mode check)
> 
> Signed-off-by: Yanglong Wu <yanglong.wu@intel.com>
> ---

Changes in V3:

Patch

diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c
index 14b9c5303..ae9c44421 100644
--- a/drivers/net/ixgbe/ixgbe_ethdev.c
+++ b/drivers/net/ixgbe/ixgbe_ethdev.c
@@ -2222,8 +2222,6 @@  ixgbe_check_mq_mode(struct rte_eth_dev *dev)
 		case ETH_MQ_RX_NONE:
 			/* if nothing mq mode configure, use default scheme */
 			dev->data->dev_conf.rxmode.mq_mode = ETH_MQ_RX_VMDQ_ONLY;
-			if (RTE_ETH_DEV_SRIOV(dev).nb_q_per_pool > 1)
-				RTE_ETH_DEV_SRIOV(dev).nb_q_per_pool = 1;
 			break;
 		default: /* ETH_MQ_RX_DCB, ETH_MQ_RX_DCB_RSS or ETH_MQ_TX_DCB*/
 			/* SRIOV only works in VMDq enable mode */