[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