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...@intel.com> --- v1~v3: coding style issue fix --- v4: Rework according to comments --- drivers/net/ixgbe/ixgbe_ethdev.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c index baaeee5d9..6af4f8b2b 100644 --- a/drivers/net/ixgbe/ixgbe_ethdev.c +++ b/drivers/net/ixgbe/ixgbe_ethdev.c @@ -2240,8 +2240,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 */ -- 2.11.0