Thread (13 messages) 13 messages, 3 authors, 2016-10-13

Re: [PATCH] app/testpmd: fix DCB config issue on ixgbe

From: Iremonger, Bernard <hidden>
Date: 2016-08-26 10:04:26

Hi Wenzhuo,

<snip>
quoted
quoted
quoted
If nb_rxq and nb_txq are set to max_rx_queues and max_tx_queues
respectively, there is a failure when the port is started in
ixgbe_check_mq_mode() at line
1990 in ixgbe_ethdev.c.
SRIOV is active, nb_rx_q=128 nb_tx_q=128 queue number must be less
than or equal to 1.
I haven't hit this issue. Would you like to give more details about
how to hit it? I'll check if I miss something.
There is a Niantic PF and VF bound to igb_uio. Port 0 is the PF and
Port 1 is the VF.
./testpmd -c 3f -l 1-5 -n 4 -- -i
testpmd> set corelist 2,3,4,5
testpmd> port stop 0  /* PF is 0 */
testpmd> port config 0 dcb vt on 4 pfc on port start 0 /* PF is 0 */
line 1990   ixgbe_ethdev.c
SRIOV is active, nb_rx_q=128 nb_tx_q=128 queue number must be less
than or equal to 1.
/* Works if nb_rx_q and nb_tx_q set to 1 */
To my opinion, it's a by-design limitation. After using the DCB configuration
CLI, the queue number is set to a fix number which is the max number. But
as you pointed, when SRIOV is active there's another requirement for the
queue number.
We need to investigate deeper and find a solution for it. But I think it's
another story. We need another patch for it.
Line 1997 in testpmd.c
1997	if (dcb_mode == DCB_VT_ENABLED) {
		nb_rxq = rte_port->dev_info.max_rx_queues;
		nb_txq = rte_port->dev_info.max_tx_queues;
	} else {
2001		/*if vt is disabled, use all pf queues */
		if (rte_port->dev_info.vmdq_pool_base == 0) {
			nb_rxq = rte_port->dev_info.max_rx_queues;
			nb_txq = rte_port->dev_info.max_tx_queues;
		} else {
			nb_rxq = (queueid_t)num_tcs;
			nb_txq = (queueid_t)num_tcs;
		}
	}

The comment at line 2001 implies that when dcb_mode is DCB_VT_ENABLED all pf queues should not be used.
When dcb_mode is DCB_VT_ENABLED, setting nb_rxq and nb_txq equal to 1 works when the PF (port 0) is started.
When dcb_mode is DCB_VT_ENABLED, setting nb_rxq to max_rx_queues and nb_txq to max_tx_queues results in the following failure in ixgbe when the PF (port 0) is started.
SRIOV is active, nb_rx_q=128 nb_tx_q=128 queue number must be less than or equal to 1.

<snip>
 
Regards,

Bernard
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help