[dpdk-users] [pktgen] pktgen Tx/Rx rates are not the same in loopback testing case

Wiles, Keith keith.wiles at intel.com
Tue Jul 25 16:10:34 CEST 2017


> On Jul 25, 2017, at 4:04 AM, Paul Tsvika <mozloverinweb at gmail.com> wrote:
> 
> Hi
> 
> I've some updates and added inline text in my post.
> 
> 
> Thanks.
> 
> 
>> 
>> Memory: 32G ( 16 G on two channels )
>> CPU: Xeon-D 1557
>> NIC: Intel X552/X557 10GBASE-T
>> 
>> CPU layout: ( Graph generated from cpu_layout.py )
>> 
>> Core and Socket Information (as reported by '/proc/cpuinfo')
>> ============================================================
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> *cores =  [0, 1, 2, 3, 4, 5, 8, 9, 10, 11, 12, 13]sockets =  [0]
>> Socket 0               --------       Core 0  [0, 12]        Core 1  [1,
>> 13]        Core 2  [2, 14]        Core 3  [3, 15]        Core 4  [4,
>> 16]        Core 5  [5, 17]        Core 8  [6, 18]        Core 9  [7,
>> 19]        Core 10 [8, 20]        Core 11 [9, 21]        Core 12 [10,
>> 22]       Core 13 [11, 23]*
>> =============================================================
>> 
>> My motherboard has 2 10G ports so that I set up the testing experiment in
>> loopback.
>> 
>> I have compiled DPDK successfully and below is the steps how I configured
>> pktgen
>> 
>> $ sudo modprobe uio
>> $ sudo insmod ./build/kmod/igb_uio.ko
>> $ sudo ./usertools/dpdkdevbind.py -b igb_uio xxx:xx.0 xxx:xx.1
>> $ sudo ./app/pktgen -c 0x1f -n 2 -- -P -m "[1:3].0, [2:4].1"
>> <pktgen> start 0
>> 
>> I use core 1 and core 3 work for port 0 tx/rx respectively. Core 2 and
>> core 4 work for port 1 tx/rx respectively.
>> 
>> I have some questions listed below:
>> 
>> 1.
>> 
>> I checked other developers who run pktgen successfully should get the
>> TX/RX rate almost the same and the value should hit 10000 or 99xx.
>> I have not figured out yet why the rate went down when I run pktgen.
>> 
>> 
>> 
>> 
>> 
>> * Flags:Port      :   P--------------:0   P--------------:1
>> 10318718/0Link State        :       <UP-10000-FD>       <UP-10000-FD>
>> ----TotalRate----Pkts/s Max/Rx     :                 0/0
>> 10318848/8096382      10318848/8096382       Max/Tx     :
>> 14880683/11528400                 0/0     14880683/11528400MBits/s
>> Rx/Tx     :              0/7747              5440/0             5440/7747
>> *
>> 
> *[PT 1:] Any developer has the experience to this ? *


The only other way you can get a performance difference is the NIC’s are in PCIe slots which are not able to handle the performance. Did you check if the slots are both 8xPCIe slots.

> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> *Broadcast         :                   0
>> 0Multicast         :                   0                   0  64
>> Bytes        :                   0          4603033247  65-127
>> :                   0                   0  128-255
>> :                   0                   0  256-511
>> :                   0                   0  512-1023
>> :                   0                   0  1024-1518
>> :                   0                   0Runts/Jumbos
>> :                 0/0                 0/0Errors Rx/Tx
>> :                 0/0                 0/0Total Rx Pkts
>> :                   0          4596736394      Tx Pkts     :
>> 6588970508                   0      Rx MBs      :
>> 0             3089006      Tx MBs      :
>> 4427788                   0ARP/ICMP Pkts     :
>> 0/0                 0/0Tx Count/% Rate   :       Forever /100%
>> Forever /100%Pattern Type      :             abcd...             abcd...Tx
>> Count/% Rate   :       Forever /100%       Forever /100%PktSize/Tx Burst
>> :           64 /   32           64 /   32 -------------------Src/Dest
>> Port     :         1234 / 5678         1234 / 5678sPkt Type:VLAN ID  :
>> IPv4 / TCP:0001     IPv4 / TCP:0001Dst  IP Address   :
>> 192.168.1.1         192.168.0.1Src  IP Address   :      192.168.0.1/24
>> <http://192.168.0.1/24>      192.168.1.1/24 <http://192.168.1.1/24>
>> -------------------Dst MAC Address   :   0c:c4:7a:c5:43:7b
>> 0c:c4:7a:c5:43:7a-- Pktgen Ver: 3.3:   8086:15ad/03:00.0
>> 8086:15ad/03:00.1 -------------------*
>> 
>> 
>> 2.1
>> 
>> My start_log below:
>> 
>> Copyright (c) <2010-2017>, Intel Corporation. All rights reserved.
>>   Pktgen created by: Keith Wiles -- >>> Powered by Intel® DPDK <<<
>> 
>>>>> Packet Burst 32, RX Desc 512, TX Desc 1024, mbufs/port 8192, mbuf
>> cache 1024
>> 
>> *[PT]: looks like packet size is 32, should it suppose to be 64? Can I
>> configure it?*
>> *Also, why RX Desc and TX Desc is not the same ?*
>> 
>> === port to lcore mapping table (# lcores 5) ===
>>   lcore:    0       1       2       3       4      Total
>> port   0: ( D: T) ( 1: 0) ( 0: 0) ( 0: 1) ( 0: 0) = ( 1: 1)
>> port   1: ( D: T) ( 0: 0) ( 1: 0) ( 0: 0) ( 0: 1) = ( 1: 1)
>> Total   : ( 0: 0) ( 1: 0) ( 1: 0) ( 0: 1) ( 0: 1)
>>  Display and Timer on lcore 0, rx:tx counts per port/lcore
>> 
>> Configuring 2 ports, MBUF Size 2176, MBUF Cache Size 1024
>> Lcore:
>>    1, RX-Only
>>                RX_cnt( 1): (pid= 0:qid= 0)
>>    2, RX-Only
>>                RX_cnt( 1): (pid= 1:qid= 0)
>>    3, TX-Only
>>                TX_cnt( 1): (pid= 0:qid= 0)
>>    4, TX-Only
>>                TX_cnt( 1): (pid= 1:qid= 0)
>> 
>> Port :
>>    0, nb_lcores  2, private 0x986ec0, lcores:  1  3
>>    1, nb_lcores  2, private 0x989220, lcores:  2  4
>> 
>> 
>> 
>> ** Default Info (0000:03:00.0, if_index:0) **
>>   max_vfs        :   0, min_rx_bufsize    :1024, max_rx_pktlen : 15872
>>   max_rx_queues  : 128, max_tx_queues     :  64
>>   max_mac_addrs  : 128, max_hash_mac_addrs:4096, max_vmdq_pools:    64
>>   rx_offload_capa:  79, tx_offload_capa   : 191, reta_size     :   512,
>> flow_type_rss_offloads:0000000000038d34
>>   vmdq_queue_base:   0, vmdq_queue_num    : 128, vmdq_pool_base:     0
>> ** RX Conf **
>>   pthresh        :   8, hthresh          :   8, wthresh        :     0
>>   Free Thresh    :  32, Drop Enable      :   0, Deferred Start :     0
>> ** TX Conf **
>>   pthresh        :  32, hthresh          :   0, wthresh        :     0
>>   Free Thresh    :  32, RS Thresh        :  32, Deferred Start :     0,
>> TXQ Flags:00000f01
>> 
>>    Create: Default RX  0:0  - Memory used (MBUFs 8192 x (size 2176 + Hdr
>> 128)) + 192 =  18433 KB headroom 128 2176
>>      Set RX queue stats mapping pid 0, q 0, lcore 1
>> 
>> 
>>    Create: Default TX  0:0  - Memory used (MBUFs 8192 x (size 2176 + Hdr
>> 128)) + 192 =  18433 KB headroom 128 2176
>>    Create: Range TX    0:0  - Memory used (MBUFs 8192 x (size 2176 + Hdr
>> 128)) + 192 =  18433 KB headroom 128 2176
>>    Create: Sequence TX 0:0  - Memory used (MBUFs 8192 x (size 2176 + Hdr
>> 128)) + 192 =  18433 KB headroom 128 2176
>>    Create: Special TX  0:0  - Memory used (MBUFs   64 x (size 2176 + Hdr
>> 128)) + 192 =    145 KB headroom 128 2176
>> 
>> 
>> Port memory used =  73873 KB
>> Initialize Port 0 -- TxQ 1, RxQ 1,  Src MAC 0c:c4:7a:c5:43:7a
>> 
>> ** Default Info (0000:03:00.1, if_index:0) **
>>   max_vfs        :   0, min_rx_bufsize    :1024, max_rx_pktlen : 15872
>>   max_rx_queues  : 128, max_tx_queues     :  64
>>   max_mac_addrs  : 128, max_hash_mac_addrs:4096, max_vmdq_pools:    64
>>   rx_offload_capa:  79, tx_offload_capa   : 191, reta_size     :   512,
>> flow_type_rss_offloads:0000000000038d34
>>   vmdq_queue_base:   0, vmdq_queue_num    : 128, vmdq_pool_base:     0
>> ** RX Conf **
>>   pthresh        :   8, hthresh          :   8, wthresh        :     0
>>   Free Thresh    :  32, Drop Enable      :   0, Deferred Start :     0
>> ** TX Conf **
>>   pthresh        :  32, hthresh          :   0, wthresh        :     0
>>   Free Thresh    :  32, RS Thresh        :  32, Deferred Start :     0,
>> TXQ Flags:00000f01
>> 
>>    Create: Default RX  1:0  - Memory used (MBUFs 8192 x (size 2176 + Hdr
>> 128)) + 192 =  18433 KB headroom 128 2176
>>      Set RX queue stats mapping pid 1, q 0, lcore 2
>> 
>> 
>>    Create: Default TX  1:0  - Memory used (MBUFs 8192 x (size 2176 + Hdr
>> 128)) + 192 =  18433 KB headroom 128 2176
>>    Create: Range TX    1:0  - Memory used (MBUFs 8192 x (size 2176 + Hdr
>> 128)) + 192 =  18433 KB headroom 128 2176
>>    Create: Sequence TX 1:0  - Memory used (MBUFs 8192 x (size 2176 + Hdr
>> 128)) + 192 =  18433 KB headroom 128 2176
>>    Create: Special TX  1:0  - Memory used (MBUFs   64 x (size 2176 + Hdr
>> 128)) + 192 =    145 KB headroom 128 2176
>> 
>> 
>> Port memory used =  73873 KB
>> Initialize Port 1 -- TxQ 1, RxQ 1,  Src MAC 0c:c4:7a:c5:43:7b
>> 
>> Total memory used = 147746 KB
>> Port  0: Link Down <Enable promiscuous mode>
>> *[PT]: I don't know why the Port ) went down at this point. Is there any
>> other thing I should check ?*
>> 
> *   [PT 2]: After updating the NIC firmware, the drop issue has been
> fixed. *
> 
>> 
>> 
>> Port  1: Link Up - speed 10000 Mbps - full-duplex <Enable promiscuous mode>
>> 
>> pktgen_packet_capture_init: mz->len 4194304
>> 
>> === Display processing on lcore 0
>>  RX processing lcore:   1 rx:  1 tx:  0
>> For RX found 1 port(s) for lcore 1
>>  RX processing lcore:   2 rx:  1 tx:  0
>> For RX found 1 port(s) for lcore 2
>>  TX processing lcore:   3 rx:  0 tx:  1
>> For TX found 1 port(s) for lcore 3
>>  TX processing lcore:   4 rx:  0 tx:  1
>> For TX found 1 port(s) for lcore 4
>> 
>> 
>> 
>> 
>> 
>> Thanks for any feedback.
>> 
>> 
>> --
>> P.T
>> 
> 
> 
> 
> -- 
> P.T

Regards,
Keith



More information about the users mailing list