[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