On 1170 EVK, the result of evkmimxrt1170_lwip_iperf_bm_cm7 (tcp rx test) is just about 127 Mbits/sec. We have a custom i.MXRT1170 board with different phy. The result of iperf is about 190 Mbits/sec. I tried to config tx/rx delay but it doesn't improve the performance. The bandwidth is lower than what we expect.
What is the cause of it? Any idea would be very appreciated.
I am using SDK2.12 with iperf2.
I changed the setting to run the app in SRAM. The bandwidth result was improved a lot (~550M bps). Thanks for your advice. I will try to setup the test with direct connection.
Hello
Hope you are well.
Our test show, that for 100M ENET, the iperf performance result can be up to 94Mbps, and for 1G ENET it can reach up to 912M bps.
Which SDK version are you using? Did you make a modification to iperf example?
Moving the code to internal SRAM could improve significantly the performance.
Also, the equipment used to make this test could influence measurements. It is important to make sure that the board is directly connected to the PC.
If you have more questions do not hesitate to ask me.
Best regards,
Omar
hi, some news?
best regards
Hi,
I'm in the same situation: too slow gigabit ethernet speed
This is my setup:
PC: Windows 10 Pro on Intel i7-10700 2.9GHz CPU, 16GB RAM and 4-port Broadcom NetXtreme Gigabit Ethernet interface
Board: MIMXRT1170-EVK, directly connected to PC
IDE: MCUXpresso 11.6.0
SDK: SDK_2_12_0_MIMXRT1176xxxxx
SDK example: evkmimxrt1170_lwip_iperf_bm_cm7
Build config: Release
EVB mode selected: 2: TCP client mode (TX test)
Iperf command used: .\iperf-2.1.8-win.exe -s
The max speed accomplished between 2 identical PCs is 950Mbps.
Using the example as provided in the SDK (code in XIP flash and data in external SDRAM), the max speed achieved is only 220Mbps.
Changing the project settings to put code in SRAM_ITC and data, stack and heap in SRAM_DTC, the max speed reached is 420Mbps.
Using LIBC malloc instead of LWIP one (MEM_LIBC_MALLOC = 1), the max speed obtained is 490Mbps.
It's very far from the 912Mbps stated in your previous post.
Can you attach here the example used in your tests?
Best regards,
Marco
Hello
The example used for these test were the lwip_iperf example from the SDK.
To experiment with the receive throughput, try to increase the number of receive buffers. For other platforms, where zero-copy on receive is implemented, it is determined by ENET_RXBUFF_NUM definition.
Also, increase the TCP receive window by changing TCP_WND definition in the file lwipopts.h or on command line.
Make sure that TCP_WND is not larger than (number of receive buffers / TCP_MSS).
I suggest you open a different thread so we can support you there.
If you have more questions do not hesitate to ask me.
Best regards,
Omar
I had already read the readme file inside the SDK lwip_iperf example, thanks.
But the example, as it is, don't reach the speed you stated.
Can you attach here the project you used to achieve 912Mbps in TX test, please?
Best regards,
Marco