Multiple Tx-Queues not working as expected

Stephen Hemminger stephen at networkplumber.org
Thu Feb 16 20:51:09 CET 2023


On Thu, 16 Feb 2023 23:40:27 +0530
Rajasekhar Pulluru <pullururajasekhar at gmail.com> wrote:

> Hi Team,
> 
> I am trying to set-up 8 Tx-Queues (but only 1 Rx-Queue) and burst traffic
> out of different Tx-Queues from the same cpu core on an ixgbe nic (10G).
> Although transmitted packets reach the peer, reading the statistics
> indicates only the Tx-q[0] has non-zero packets and bytes count, the rest
> of the Tx-q[1] to Tx-q[7] all have zero packets and bytes count.
> 
> I am following the below sequence.
> 
> 1. configuration
> rte_eth_dev_configure(port-id, 1 /* only 1 rx-q */, 8 /* tx-queues */,
> &dev_conf /* memset of 0 on this dev_conf done */);
> 
> 2. tx queue set-up
> struct rte_eth_dev_info dev_info;
> rte_eth_dev_info_get(port-id, &dev_info);
> 
> struct rte_eth_txconf tx_conf;
> memcpy(&tx_conf, &dev_info.default_txconf, sizeof tx_conf);
> for(i=0; i<8; i++) {
> rte_eth_tx_queue_setup(port-id, i /* queue-id */, 1024 /* num_of_txdesc */,
> numa_node, &tx_conf;)
> }
> 
> 3. rx queue set-up
> rte_eth_rx_queue_setup(port-id, 0, 1024 /* num_of_rxdesc */, &rx_conf,
> mbuf_pool);
> 
> 4. start the port
> rte_eth_dev_start(port-id);
> 
> 5. call the below tx burst function with different queue-id (range 0 to 7)
> every-time for every burst of new packets to be transmitted
> rte_eth_tx_burst(port-id, queue-id, pkts_burst, nb_pkts_burst);
> 
> 6. read stats using rte_eth_xstats_get and verified that only the first
> tx-q has non-zero packets and bytes count, rest of the tx-q's have 0
> packets and bytes count.
> 
> What could be wrong here? Appreciate any help.
> 
> Thanks & Regards,
> Rajasekhar
> ReplyForward

Depending on the type of NIC, some share a signal completion channel
for both RX and TX. If the Rx channel is not polled, than transmit completions
may not happen.


More information about the dev mailing list