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

Wiles, Keith keith.wiles at intel.com
Wed Jul 26 18:44:49 CEST 2017


Send only plain text to the list please.

> On Jul 21, 2017, at 8:49 PM, Paul Tsvika <mozloverinweb at gmail.com> wrote:
> 
> Thanks Keith.
> 
> Let me post my questions again and inline the text.
> 
> ---------------------------------------------------------------------------------------------------------------
> 
> Hi developers,
> 
> Below is my hardware configuration:
> 
> 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/0
> Link 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/11528400
> MBits/s Rx/Tx     :              0/7747              5440/0             5440/7747
> Broadcast         :                   0                   0
> Multicast         :                   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                   0
> Runts/Jumbos      :                 0/0                 0/0
> Errors Rx/Tx      :                 0/0                 0/0
> Total Rx Pkts     :                   0          4596736394
>       Tx Pkts     :          6588970508                   0
>       Rx MBs      :                   0             3089006
>       Tx MBs      :             4427788                   0
> ARP/ICMP Pkts     :                 0/0                 0/0
> Tx 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 / 5678s
> Pkt Type:VLAN ID  :     IPv4 / TCP:0001     IPv4 / TCP:0001
> Dst  IP Address   :         192.168.1.1         192.168.0.1
> Src  IP Address   :      192.168.0.1/24      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?


32 is the number of packets in a burst

> 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 ?
> 
> 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

Regards,
Keith



More information about the users mailing list