[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