[dpdk-dev] Pktgen Only Enables One RX Queue with Mellanox ConnectX-5

David Christensen drc at linux.vnet.ibm.com
Thu Jun 6 01:10:28 CEST 2019


>> Traffic is only received on RX queue 0.  Anyone run into this?  The link partner shows traffic received and transmitted on all configured queues (16 in this case) so I don't think the link partner is dropping traffic in such a way that the remaining traffic flows to a single RX queue on the SUT.
> 
> This normally means the RSS is not distributing the RX traffic to the others, which means the RX traffic is not varied enough to make RSS distribute the traffic. That would be my best guess I have not used the Mellanox cards.

Remember that the traffic is being generated by pktgen.  Is there 
something I can improve with the "range" commands I used to start the 
test?  When I review the extended statistics from testpmd's "show port 
xstats all" command I see that traffic is being distributed correctly 
when received by the SUT (i.e. each per RX queue statistic is 
incrementing and is about the same value).  And the SUT uses the same 
MLX5 adapter that the pktgen host does.

Similarly, the per TX queue statistic is incrementing as well, 
suggesting that the traffic is being looped back to the pktgen host.  If 
there's a problem with RSS it would appear to be on the pktgen host 
side.  Is that expected?

I haven't looked into how RSS is enabled with DPDK but it looks like 
pktgen operates differently with respect to RSS on different versions of 
DPDK.  Does the following code snippet mean that RSS isn't enabled by 
pktgen on my build of DPDK v18.11?

app/pktgen-port-cfg.c:

     41 static struct rte_eth_conf default_port_conf = {$
     42 #if RTE_VERSION <= RTE_VERSION_NUM(18, 5, 0, 0)$
     43 | .rxmode = {$
     44 | | .mq_mode = ETH_MQ_RX_RSS,$
     45 | | .max_rx_pkt_len = ETHER_MAX_LEN,$
     46 | | .split_hdr_size = 0,$
     47 | | .ignore_offload_bitfield = 1,$
     48 | | .offloads = (DEV_RX_OFFLOAD_CRC_STRIP |$
     49 | | |      DEV_RX_OFFLOAD_CHECKSUM),$
     50 | },$
     51 | .rx_adv_conf = {$
     52 | | .rss_conf = {$
     53 | | | .rss_key = NULL,$
     54 | | | .rss_hf = ETH_RSS_IP,$
     55 | | },$
     56 | },$
     57 | .txmode = {$
     58 | | .mq_mode = ETH_MQ_TX_NONE,$
     59 | },$
     60 #else$
     61 | .rxmode = {$
     62 | | .split_hdr_size = 0,$

Dave



More information about the dev mailing list