We are using an IMX6D on a custom board, running the 4.14.98 Linux Kernel released by NXP. The custom board also uses an AR8031 PHY, similar to the IMX6QSabreSD eval board. I am seeing poor UDP performance, with lots of lost datagrams when testing with iperf3. Performance varies when testing against different machines running Windows/or Linux with Gigabit interfaces. But for the case when testing against the IMX6SabreSD board (which happens to be the BEST case), in an isolated network, UDP RX rates are between 285-300 Mbps with about 25% loss, and UDP TX rates top out at 160 Mbps with minimal datagram loss (<.5%). I am aware of the ERRATA on the MAC block of the SOC (ERR004512), which essentially says that performance is limited to around 400 Mbps (TX + RX) combined. I am seeing this with TCP, as expected. However UDP is performing terribly. Any suggestions on how to increase UDP performance? At least enough to be in line with the ERRATA.
So this issue with poor UDP performance is Iperf3 related. Switching to Iperf2, and limiting the client UDP bandwidth so that it is inline with ERRATA ERR004512 ( -b 400M), UDP performance was as expected.
Please make sure that everything is fine with the connection on hardware level. I mean wires, etc.
Also please note that is is processor bus is loaded with some other task in addition to networkig it may cause loss also.