2024-05-24 12:09 AM
Hello,
my aim is to achieve a reliable receiving UDP speed with stm32mp13 while sending a payload of 150 mbit/s.
I did performance tests of 1 gigabit Ethernet using a MYD-YF13X development board and iperf3.
Here are some of my results:
19% packet drop rate at 150 mbit/s is, for my purpose, unacceptable.
I think the problem is related to either the MPU or the YT8521SH Ethernet PHY.
But I doubt it is the second one, so I would focus on the MPU itself.
It seems to me that the MPU is not fast enough to achieve a sensible >100 mbit/s receiving speed.
The architecture is arm 32bit, which has 32KB cache memory inclusive.
The amount of cache is decisive for receiving huge payloads.
Could it be the reason for such a performance?
What was the reason to put 100 mbit PHYs and not 1 gbit into the STM32MP135F-DK?
Best,
J. Schneider
Solved! Go to Solution.
2024-05-27 01:23 AM
Thanks for clarification.
I think your results are reflecting the MP13 single-cpu platform capabilities (UDP is always much less optimized in both HW and SW than TCP).
Industrial use cases (which are the major target of the two Ethernet ports of MP13) are most of the time only using 100Mbit/s.
If you need more performances with single gigabit Ethernet, please look to the STM32MP15. For dual Gigabit Ethernet, the STM32MP25 will be much better.
Regards.
2024-05-24 01:36 AM
Hello, this is also my Problem. It would be great if someone helps :)
2024-05-24 01:45 AM
Hi @jschneider
Agree, UDP RX perf is linked to CPU. Here the 300Mbit/s you have seems a good result.
I have no figures for MP13, but sound strange that UDP TX is worse than UDP RX.
You could find some data for an MP157F dual core 800MHz (same L1, bigger L2) in following ticket
Could you please share more details on the setup ?
- CPU flavor and frequency (is it a STM32MP135F running at 1HGz) ?
- iperf3 command line parameters
- OpenSTLinux ecosystem version
- network setup (i.e. direct link, other activity, router, etc...)
There is 'only' two 100MHz ethernet ports on STM32MP135F-DK to keep affordable pricing while demonstrating dual Ethernet capabilities, not because we are not achieving decent gigabit performances.
Btw, UDP RX is the most CPU demanding and UDP is also usually more prone to measurements issue with iperf.
Could you do tests using TCP ?
Regards.
2024-05-27 12:55 AM
Hello @PatrickF
The description of my results might have been ambiguous, so I am providing the updated version.
The receiving drop rate is not satisfying. 19% is too much while sending only a 150 Mbps.
Sending the udp data is also a problem. While trying to send 1 Gbps, only around 310 Mbps is being transferred.
Setup:
-CPU flavor and frequency
Yes, it is running on 1 GHz, but I do not think the frequency is the source of the slow perforemance.
-iperf3 commands
Receiver (Server) : iperf3 -s -B ip
Sender (Client) : iperf3 -c ip -t 60 -u -b 150M
ip and the payload (150 Mbps in this case) are variables.
-OpenSTLinux ecosystem version
-network setup
It occurred to me that I was not connecting the board to the pc with a gigabit ethernet cable.
And after changing the cable, the results are much better.
After this step my requirements are satisfied. The networking performance is still questionable, especially when working with two ethernet interfaces at once.
Best,
J. Schneider
2024-05-27 01:23 AM
Thanks for clarification.
I think your results are reflecting the MP13 single-cpu platform capabilities (UDP is always much less optimized in both HW and SW than TCP).
Industrial use cases (which are the major target of the two Ethernet ports of MP13) are most of the time only using 100Mbit/s.
If you need more performances with single gigabit Ethernet, please look to the STM32MP15. For dual Gigabit Ethernet, the STM32MP25 will be much better.
Regards.
2024-06-06 02:05 AM
Hi,
I tested the MYiR developement board with Azure NetXDuo and iperf utility.
I was able to achieve a highly satisfying performance with udp communication.
Best,
J. Schneider