~35Gbps and ~40Gbps when setting to 128 and 256. I use 4 cores to tx packets.
在 2017年8月1日,17:04,Paul Tsvika <[email protected]> 写道: Hi Zheng, What throughput you had when you tried 128 or 256B packets? P.T 2017-08-01 16:53 GMT+08:00 Zhilong Zheng <[email protected]>: > Hi Paul, > > You can refer to the website (https://community.mellanox.co > m/docs/DOC-2489#jive_content_id_Getting_started) to tune performance. By > the way, it looks like that you can not get ~40Gbps throughputs when > generating 64B packets as @Adrien mentioned (Actually I am also confused > about this problem before, http://dpdk.org/ml/archives/us > ers/2017-July/002226.html). > > Hope it can help you. > > Regards, > > Zhilong > > > 在 2017年8月1日,16:15,Paul Tsvika <[email protected]> 写道: > > Hi zheng, > > Thanks for the feedback. > > You are right. To get pktgen work with mlx4, it needs to recompile DPDK > and pktgen as well. > > I am able to run pktgen now. > > By following the document from DPDK website for this NIC, > I did and change the following variables > > I set *MLX4_INLINE_RECV_SIZE=64* as the environment variable in bashrc. > set l*og_num_mgm_entry_size=-7* > > Disable pause frames: > *ethtool -A ens2d1 rx off tx 0ff* > > I did not change the NIC register ( *setpci* ) at this time. > > > and then I run the commands below in order: > > > *test$: modprobe -a ib_uverbs mlx4_en mlx4_core mlx4_ib* > *test$: /etc/init.d/openibd restart* > *test:$: sudo ./app/x86_64-native-linuxapp-gcc/pktgen -l 0-6 -n 1 > --proc-type auto --file-prefix pg -b 03:00.0 -b 03:00.1 -b 05:00.0 -b > 05:00.1 -- -P -m "[1-5.0]"* > > | Ports 0-1 of 2 <Main Page> Copyright (c) <2010-2017>, Intel > Corporation > Flags:Port : P--------------:0 > Link State : <--Down--> ----TotalRate---- > Pkts/s Max/Rx : 0/0 0/0 > Max/Tx : 844160/732319 844160/732319 > MBits/s Rx/Tx : 0/*492 * 0/*492* > Broadcast : 0 > Multicast : 0 > 64 Bytes : 0 > 65-127 : 0 > 128-255 : 0 > 256-511 : 0 > 512-1023 : 0 > 1024-1518 : 0 > Runts/Jumbos : 0/0 > Errors Rx/Tx : 0/0 > Total Rx Pkts : 0 > Tx Pkts : 59289215 > Rx MBs : 0 > Tx MBs : 39842 > ARP/ICMP Pkts : 0/0 > Tx Overrun : 0 > Cycles per Tx : 14880952/3200 > Missed Rx : 0 > mcasts Rx : None > No Mbuf Rx : 0 > : > Pattern Type : abcd... > Tx Count/% Rate : Forever /100% > PktSize/Tx Burst : 64 / 32 > Src/Dest Port : 1234 / 5678 > Pkt Type:VLAN ID : IPv4 / TCP:0001 > Dst IP Address : 192.168.1.1 > Src IP Address : 192.168.0.1/24 > Src MAC Address : e4:1d:2d:02:44:81 > Powered by DPDK -------------------------- > > The transmitting rate should be around 40000 since it is 40G NIC. > However, the rate is much lower than it and it is probably related to > configurations. > > I actually have two mother boards and each one has 40G NICs installed. > My intention is to do the tx / rx experiment. > My first step is to check tx rate can reach as close to 40000 as possible. > > Anyone has related experience please advise. > > > > P.T > > > 2017-08-01 12:15 GMT+08:00 zhilong zheng <[email protected]>: > >> >> Hi, >> >> After enabling the MLX4 flag and recompiling the DPDK source code, Do you >> recompile the code of pktgen? I think you can recompile it by running make >> clean and make. >> >> Regards, >> Zhilong >> >> > 在 2017年8月1日,11:38,Paul Tsvika <[email protected]> 写道: >> > >> > Hi Olga, >> > >> > 2017-08-01 0:11 GMT+08:00 Olga Shern <[email protected]>: >> > >> >> Hi Paul, >> >> >> >> Looks like your ConnectX-3 configured to be IB and not ETH >> >> >> >>> pci@0000:04:00.0 ib0 network MT27500 Family [ConnectX-3] >> >> >> >> Use connectx_port_config script. >> >> Set all the ports to Ethernet, and follow the instructions on the >> screen. >> >> >> > >> > Thanks. I followed the script and configured both ports to Ethernet. >> > >> > ibstat info below: >> > >> > CA 'mlx4_0' >> > CA type: MT4099 >> > Number of ports: 2 >> > Firmware version: 2.40.7000 >> > Hardware version: 1 >> > Node GUID: 0xe41d2d0300024480 >> > System image GUID: 0xe41d2d0300024483 >> > Port 1: >> > State: Down >> > Physical state: Disabled >> > Rate: 10 >> > Base lid: 0 >> > LMC: 0 >> > SM lid: 0 >> > Capability mask: 0x04010000 >> > Port GUID: 0xe61d2dfffe024481 >> > Link layer: Ethernet >> > Port 2: >> > State: Active >> > Physical state: LinkUp >> > Rate: 40 >> > Base lid: 0 >> > LMC: 0 >> > SM lid: 0 >> > Capability mask: 0x04010000 >> > Port GUID: 0xe61d2dfffe024482 >> > Link layer: Ethernet >> > >> > I also change the default value from n to CONFIG_RTE_LIBRTE_MLX4_PMD=y. >> > Recompiled DPDK and it all worked. >> > >> > And Below is my ifconfig info: >> > >> > ens2 Link encap:Ethernet HWaddr e4:1d:2d:02:44:81 >> > UP BROADCAST MULTICAST MTU:1500 Metric:1 >> > RX packets:0 errors:0 dropped:0 overruns:0 frame:0 >> > TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 >> > collisions:0 txqueuelen:1000 >> > RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) >> > >> > ens2d1 Link encap:Ethernet HWaddr e4:1d:2d:02:44:82 >> > UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 >> > RX packets:126 errors:0 dropped:0 overruns:0 frame:0 >> > TX packets:220 errors:0 dropped:0 overruns:0 carrier:0 >> > collisions:0 txqueuelen:1000 >> > RX bytes:29494 (29.4 KB) TX bytes:38063 (38.0 KB) >> > >> > >> > Since I assume that I don't have to bind the device manually, I executed >> > ./dpdk-devbind.py --status with the following info popped out: >> > >> > Network devices using kernel driver >> > =================================== >> > 0000:03:00.0 'Ethernet Connection X552/X557-AT 10GBASE-T 15ad' if=eno3 >> > drv=ixgbe unused= >> > 0000:03:00.1 'Ethernet Connection X552/X557-AT 10GBASE-T 15ad' if=eno4 >> > drv=ixgbe unused= >> > 0000:04:00.0 'MT27500 Family [ConnectX-3] 1003' if=ens2,ens2d1 >> > drv=mlx4_core unused= >> > 0000:05:00.0 'I350 Gigabit Network Connection 1521' if=eno1 drv=igb >> unused= >> > 0000:05:00.1 'I350 Gigabit Network Connection 1521' if=eno2 drv=igb >> unused= >> > *Active* >> > >> > >> > With these configurations, I run commands in order but still had the >> same >> > result: >> > >> > $test: modprobe -a ib_uverbs mlx4_en mlx4_core mlx4_ib >> > $test: /etc/init.d/openibd restart >> > $test: sudo ./app/x86_64-native-linuxapp-gcc/pktgen -l 0-6 -n 1 >> --proc-type >> > auto --file-prefix pg -b 03:00.0 -b 03:00.1 -b 05:00.0 -b 05:00.1 -- -P >> -m >> > "[1-5.0]" >> > >> > >> >>>> Packet Burst 32, RX Desc 512, TX Desc 1024, mbufs/port 8192, mbuf >> cache >> > 1024 >> > !PANIC!: *** Did not find any ports to use *** >> > PANIC in pktgen_config_ports(): >> > *** Did not find any ports to use ***6: >> > [./app/x86_64-native-linuxapp-gcc/pktgen(_start+0x29) >> > [0x447239]] >> > 5: [/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0) >> > [0x7f0ec0931830]] >> > 4: [./app/x86_64-native-linuxapp-gcc/pktgen(main+0x580) [0x444710]] >> > 3: [./app/x86_64-native-linuxapp-gcc/pktgen(pktgen_config_ports+0x1614) >> > [0x46e324]] >> > 2: [./app/x86_64-native-linuxapp-gcc/pktgen(__rte_panic+0xc3) >> [0x43ead4]] >> > 1: [./app/x86_64-native-linuxapp-gcc/pktgen(rte_dump_stack+0x2b) >> [0x4b7ecb]] >> > Aborted (core dumped) >> > >> > >> > >> > Is there anything I've done wrong here? >> > >> > >> > Thanks >> > >> > >> > P.T >> > >> > >> >> You can use -w to specify ConnectX-3 PCI address, you don't need to >> use -b >> >> >> >> Make sure you compile DPDK with mlx4 PMD, it is not enabled by default >> >> >> >> Best Regards, >> >> Olga >> >> >> >> >> >> >> > >> > -- >> > P.T >> > > > > -- > P.T > > > -- P.T
