Mt7621 ethernet performance below expectations

got the same problem
21.02

root@OpenWrt:~# iperf3  -s
-----------------------------------------------------------
Server listening on 5201 (test #1)
-----------------------------------------------------------
Accepted connection from 192.168.8.10, port 2098
[  5] local 192.168.8.1 port 5201 connected to 192.168.8.10 port 2099
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec  87.1 MBytes   729 Mbits/sec                  
[  5]   1.00-2.00   sec  93.5 MBytes   785 Mbits/sec                  
[  5]   2.00-3.00   sec  99.5 MBytes   834 Mbits/sec                  
[  5]   3.00-4.00   sec   102 MBytes   856 Mbits/sec                  
[  5]   4.00-5.00   sec   105 MBytes   877 Mbits/sec                  
[  5]   5.00-6.00   sec   104 MBytes   874 Mbits/sec                  
[  5]   6.00-7.00   sec   102 MBytes   858 Mbits/sec                  
[  5]   7.00-8.00   sec   104 MBytes   871 Mbits/sec                  
[  5]   8.00-9.00   sec  96.1 MBytes   807 Mbits/sec                  
[  5]   9.00-10.00  sec  88.3 MBytes   741 Mbits/sec                  
[  5]  10.00-10.02  sec  1.68 MBytes   730 Mbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-10.02  sec   983 MBytes   823 Mbits/sec                  receiver
-----------------------------------------------------------
Server listening on 5201 (test #2)
-----------------------------------------------------------

22.03

-----------------------------------------------------------
Server listening on 5201 (test #2)
-----------------------------------------------------------
Accepted connection from 192.168.8.10, port 1046
[  5] local 192.168.8.1 port 5201 connected to 192.168.8.10 port 1047
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec  59.4 MBytes   497 Mbits/sec                  
[  5]   1.00-2.00   sec  62.0 MBytes   519 Mbits/sec                  
[  5]   2.00-3.00   sec  61.1 MBytes   513 Mbits/sec                  
[  5]   3.00-4.00   sec  61.9 MBytes   519 Mbits/sec                  
[  5]   4.00-5.00   sec  60.9 MBytes   511 Mbits/sec                  
[  5]   5.00-6.00   sec  61.6 MBytes   517 Mbits/sec                  
[  5]   6.00-7.00   sec  61.4 MBytes   516 Mbits/sec                  
[  5]   7.00-8.00   sec  61.8 MBytes   517 Mbits/sec                  
[  5]   8.00-9.00   sec  61.5 MBytes   516 Mbits/sec                  
[  5]   9.00-10.00  sec  58.7 MBytes   492 Mbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-10.00  sec   610 MBytes   512 Mbits/sec                  receiver
-----------------------------------------------------------

Probably reasion is this commit is not cherry-pick https://git.openwrt.org/?p=openwrt/openwrt.git;a=commit;h=fdbb468c5998d9adb1819751ffaf38013768a8eb for 22.03

Test tomorrow with master.

~500 Mbps is the best my ER-X can do in server mode also. Looking forward to what tomorrow may bring.

If it works, I hope we can convince the developers that this is not a new feature, but fixes a problem that should be fixed in 22.03.

This is with software flow offload enabled:

 OpenWrt SNAPSHOT, r19158-1eb5d50fd3
 -----------------------------------------------------
root@ER-X:~# iperf3 -s
-----------------------------------------------------------
Server listening on 5201 (test #1)
-----------------------------------------------------------
Accepted connection from 10.23.40.3, port 35508
[  5] local 10.23.40.1 port 5201 connected to 10.23.40.3 port 35510
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec  57.7 MBytes   482 Mbits/sec                  
[  5]   1.00-2.00   sec  58.9 MBytes   493 Mbits/sec                  
[  5]   2.00-3.00   sec  59.0 MBytes   495 Mbits/sec                  
[  5]   3.00-4.00   sec  58.7 MBytes   492 Mbits/sec                  
[  5]   4.00-5.00   sec  57.6 MBytes   483 Mbits/sec                  
[  5]   5.00-6.00   sec  58.9 MBytes   494 Mbits/sec                  
[  5]   6.00-7.00   sec  58.9 MBytes   494 Mbits/sec                  
[  5]   7.00-8.00   sec  59.1 MBytes   496 Mbits/sec                  
[  5]   8.00-9.00   sec  58.9 MBytes   495 Mbits/sec                  
[  5]   9.00-10.00  sec  59.0 MBytes   494 Mbits/sec                  
[  5]  10.00-10.01  sec   128 KBytes   385 Mbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-10.01  sec   587 MBytes   492 Mbits/sec                  receiver

Hardware offload is no improvement. Turning off software offload maybe drops 20-30 Mbps, but it is hard to discern that given test to test variability.

...shouldn't have any effect on this issue. Software/hardware flow offload accelerates traffic moving through the device. It has no effect on data moving to or from the device.

1 Like

I bit. I checked iperf3 throughput with SNAPSHOT r19180-73c6d8fd04 on my ER-X with software offload, hardware offload, no offload, between hardwired devices through the ER-X, with the ER-X functioning as server, downloads, etc. No discernible improvement on MT7621.

1 Like

Here's my test using MT7621 with Gigabit port

The device:

  • PL100 (MT7621) and Intel Atom minipc (x86/64).
  • Both using OpenWRT 21.02.2
  • TP-Link Gigabit LAN Switch in between and Cat6 cable.

Unless I am mistaken, your setup is not measuring the WAN to LAN throughput on an individual openwrt device using iperf3.

iperf3 server -- (wan) openwrt router (lan) -- iperf3 client

Yes, the test is in intranet (LAN to LAN) not on the internet (WAN to LAN).
Both Iperf3 run on router side. Both router using OpenWRT iperf3 package downloaded from openwrt software repo.

My ISP limit the speed to less than 100Mbps.

Use WAN port on router and connect it to local PC/client and the LAN port connect to local client, run iperf on both client. I think this is sufficient to check the performance.

I have also measured a big drop in ethernet performance accompanied by a higher CPU. My test is in a HLK7621 board (mt7621 device without an external switch, only the embedded ethernet switch) using master commit f3fa68e515 from April 13.

Hello everyone,

Getting back on this thread as i was hoping the performances will be back to a kind of "normal" with the latest updates, it seems not.

I've updated my very little Cudy W1300, and even with Software Offloading activated, it's staying around 500mb/s rather than 800mb/s

And actually, activating the software offlloading made the connection very unstable, and disconnecting often.

Any tips since few months about that ?

Thanks

Hi.
Have you seen this thread ?

1 Like

Iirc, openwrt 21 had packet scheduling issues beyond 21.01 - the version which last used round-robin; fixes and reversion to round robin scheduler were not ported into 21 - as it's on security updates -only maintenance.

Thank you for the link ! Seems there is a good news on this, but it's way over my knowlege to use the patch or installing the snapshot, i will have to wait for the next stable release to got it.

Hi
It's easy to create a custom build based on the latest snapshot, using the image selector.
Remember to add luci to the packages list. Than you flash the image just like another one. You can keep the settings.

1 Like

Can confirm that the expected performance is back :slight_smile:

iperf -c 192.168.1.1 -u -b 990M  --full-duplex
------------------------------------------------------------
Client connecting to 192.168.1.1, UDP port 5001
Sending 1470 byte datagrams, IPG target: 11.33 us (kalman adjust)
UDP buffer size:  208 KByte (default)
------------------------------------------------------------
[  1] local 192.168.1.172 port 53568 connected with 192.168.1.1 port 5001 (full-duplex) (no-udp-fin)
recvmsg failed: Connection refused
[ ID] Interval       Transfer     Bandwidth        Jitter   Lost/Total Datagrams
[ *1] 0.0000-0.0009 sec  0.000 Bytes  0.000 bits/sec   0.000 ms 0/0 (-nan%)
[ ID] Interval       Transfer     Bandwidth
[  1] 0.0000-10.0002 sec  1.11 GBytes   954 Mbits/sec
[  1] Sent 811383 datagrams
[ ID] Interval       Transfer     Bandwidth    Datagrams   PPS
[SUM] 0.0000-10.0002 sec  1.11 GBytes   954 Mbits/sec 811383   81137 pps
[SUM-2] Sent 811383 datagrams

Hi.
You are testing wrongly.
From a device (192.168.1.172) to the router (192.168.1.1), it is only testing the LAN without routing. So the result (954Mbit/s) means that you are fully using a gigabit wire, which is totally expected.
You need to test from LAN to WAN in order to use the routing feature. You can simulate this by adding a computer to the WAN, but you need to manually edit IPs on both the router WAN port, and the computer.

1 Like

No, this is in line with my original report. I was also testing data being sourced to/from the 7621 device, not using NAT.

This is also what I expected, and was not getting in my original report. If you read this thread from the beginning, you'll see the topic of NAT was already brought up.

It is useful to test data going to and from the device, as this measures how fast the device can process (source and consume) data. In fact, this is generally harder on a device then NAT, because hardware NAT acceleration means the device doesn't have to process each packet in it's entirety.

Probably worth reading Mt7621 ethernet performance below expectations - #32 by badulesia

I'm sorry, I got confused while trying to refocus on this topic.

1 Like