net/ixgbe: fix max queue number for VF
VF can't run in multiple queue mode, if nb_q_per_pool is set to 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 shouldn't
be more than 1, otherwise VF multiple queue mode will fail.
RTE_ETH_DEV_SRIOV(dev).nb_q_per_pool is the Max number of queue can be
used in VF, that would be assigned as IXGBE_MAX_RX_QUEUE_NUM /
RTE_ETH_DEV_SRIOV(dev).active, so that assigning nb_q_per_pool as 1
when PF is in ETH_MQ_RX_NONE, which will make VF can just use only 1
queue, is not right.
Fixes: 27b609cbd1
("ethdev: move the multi-queue mode check to specific drivers")
Cc: stable@dpdk.org
Signed-off-by: Yanglong Wu <yanglong.wu@intel.com>
Acked-by: Wei Dai <wei.dai@intel.com>
This commit is contained in:
parent
ecad87d223
commit
03231aec44
@ -2214,8 +2214,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 */
|
||||
|
Loading…
Reference in New Issue
Block a user