[dpdk-users] [dpdk][pktgen] - execute pktgen with mlx4 (40G) with some errors
Zhilong Zheng
zhengzl0715 at gmail.com
Tue Aug 1 11:12:06 CEST 2017
~35Gbps and ~40Gbps when setting to 128 and 256. I use 4 cores to tx
packets.
在 2017年8月1日,17:04,Paul Tsvika <mozloverinweb at gmail.com> 写道:
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 <zhengzl0715 at gmail.com>:
> 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 <mozloverinweb at gmail.com> 写道:
>
> 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 <zhengzl0715 at gmail.com>:
>
>>
>> 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 <mozloverinweb at gmail.com> 写道:
>> >
>> > Hi Olga,
>> >
>> > 2017-08-01 0:11 GMT+08:00 Olga Shern <olgas at mellanox.com>:
>> >
>> >> Hi Paul,
>> >>
>> >> Looks like your ConnectX-3 configured to be IB and not ETH
>> >>
>> >>> pci at 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
More information about the users
mailing list