VIM 3 PRO Ethernet Speed Problem

Hello. I have a VIM 3 PRO board and I should make embedded system with this board on Linux operating system with 5.x.x or newer kernel. I noticed that there is a problem with gigabit ethernet RX speed, when I used linux kernel v. 5 or newer (the RX speed = 283 Mbit/s). This problem was not, when I checked it on Linux with 4.x.x kernel version. I also checked khadas vim 3 firmware (VIM3_Ubuntu-gnome-focal_Linux-5.7-rc7_arm64_SD-USB_V0.9-20200530, VIM3_Ubuntu-xfce-bionic_Linux-5.5-rc2_arm64_SD-USB_V0.8.2-20200103) and have the same results - slow gigabit ethernet RX speed. Can you help me with this problem? Maybe there is an optimal config for linux kernel v 5 or newer?

I’m having the same issue with a brand new VIM3 Pro board on Debian 10 (Fenix 0.9.3) with linux 5.9 rc2.
I originally assumed that it was due to extensive heat emission, but after adding a passive cooler the problem persisted.
This problem does not seem to occur instantly, but only after either a bit of uptime or a bit of traffic that went through, I wasnt able to determine exactly what causes the issue. It shows especially when downloading packages via apt, but also occured when running a speedtest via iperf in some situations. Upload does not seem to be affected, but download is slowed down to an abysmal speed of ~1kb/s. The weird thing is that the issue sometimes just disappears again as if nothing happened. Sometimes it needs a reboot or power cycle (reconnect the power cable) though to disappear. This is also an indicator that this is not heat-related.
Neither host-RAM was notably full, according to free, nor was any CPU core notably busy.
Kernel log (dmesg) was unsuspiciously empty so there doesn’t seem to be a crash-problem with the Linux kernel driver.
Also eMMC storage wasn’t slow so it does not seem to be a general i/o issue.
I debugged this a bit further by stracing the iperf server process while I experienced the error again:
The iperf client sent it’s packets and printed the speed test result, while the iperf process in server mode including the stdout output printing got stuck waiting for an interrupt pasted below. It wasnt possible to exit the iperf server via ctrl+c, only killing the process with sigkill was worked.
The said interrupt that was stuck according to strace:

futex(0xaaaac24ab398, FUTEX_WAIT_PRIVATE, 0, NULL

@ilgiz which is your board model ? V12 or V13? I will check it

I checked the version. My board is V12 version

Are you checked this? What about results?

@ilgiz I will check it today or tomorrow … I am working on other issues

@ilgiz

khadas@Khadas:~$ iperf3 -c 192.168.1.117 
Connecting to host 192.168.1.117, port 5201
[  5] local 192.168.1.151 port 38468 connected to 192.168.1.117 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec   113 MBytes   950 Mbits/sec    0    351 KBytes       
[  5]   1.00-2.00   sec   112 MBytes   940 Mbits/sec    0    368 KBytes       
[  5]   2.00-3.00   sec   111 MBytes   935 Mbits/sec    0    368 KBytes       
[  5]   3.00-4.00   sec   112 MBytes   940 Mbits/sec    0    368 KBytes       
[  5]   4.00-5.00   sec   112 MBytes   942 Mbits/sec    0    390 KBytes       
[  5]   5.00-6.00   sec   111 MBytes   935 Mbits/sec    0    390 KBytes       
[  5]   6.00-7.00   sec   112 MBytes   938 Mbits/sec    0    390 KBytes       
[  5]   7.00-8.00   sec   112 MBytes   940 Mbits/sec    0    390 KBytes       
[  5]   8.00-9.00   sec   113 MBytes   944 Mbits/sec    0    390 KBytes       
[  5]   9.00-10.00  sec   112 MBytes   936 Mbits/sec    0    530 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  1.09 GBytes   940 Mbits/sec    0             sender
[  5]   0.00-10.00  sec  1.09 GBytes   938 Mbits/sec                  receiver

iperf Done.
khadas@Khadas:~$ ^C
khadas@Khadas:~$ iperf3 -s
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
Accepted connection from 192.168.1.117, port 59736
[  5] local 192.168.1.151 port 5201 connected to 192.168.1.117 port 59738
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec   104 MBytes   872 Mbits/sec                  
[  5]   1.00-2.00   sec   105 MBytes   878 Mbits/sec                  
[  5]   2.00-3.00   sec   104 MBytes   868 Mbits/sec                  
[  5]   3.00-4.00   sec   103 MBytes   866 Mbits/sec                  
[  5]   4.00-5.00   sec   104 MBytes   874 Mbits/sec                  
[  5]   5.00-6.00   sec   105 MBytes   879 Mbits/sec                  
[  5]   6.00-7.00   sec   103 MBytes   867 Mbits/sec                  
[  5]   7.00-8.00   sec   105 MBytes   885 Mbits/sec                  
[  5]   8.00-9.00   sec   106 MBytes   889 Mbits/sec                  
[  5]   9.00-10.00  sec   105 MBytes   882 Mbits/sec                  
[  5]  10.00-10.00  sec   313 KBytes   837 Mbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-10.00  sec  1.02 GBytes   876 Mbits/sec                  receiver
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
^Ciperf3: interrupt - the server has terminated

This is my test result . It work fine. Can you burn a android firmarre to check the internet ? This helps us confirm whether it is a hardware problem.

Thank you for work. Can you send me the linux kernel config, which you used, or firmware name from khadas website? My board can give results like yours only with v 4 linux kernel.

I have the same issue with the V13 version actually.

@ilgiz same firmwre with you . Can you try to burn a andoroid firmware and try again ?

We checked on another board and it works ok. It was a defective device.

@ilgiz OK, Our after-sales colleagues will send you a private message.

1 Like

Is there any solution of this issue? I have the same problem on my VIM3 Pro.
On 100Gb everything ok. On 1000 doesnt work as it should be:

##############################################
#                  CoreELEC                  #
#            https://coreelec.org            #
##############################################

CoreELEC (official): 9.2.5 (Amlogic-ng.arm)
CoreELEC:~ # ethtool -s eth0 speed 1000 duplex full
CoreELEC:~ # iperf3 -c 192.168.10.1 -R
Connecting to host 192.168.10.1, port 5201
Reverse mode, remote host 192.168.10.1 is sending
[  5] local 192.168.10.223 port 36852 connected to 192.168.10.1 port 5201
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec  4.04 MBytes  33.9 Mbits/sec                  
[  5]   1.00-2.00   sec  1.87 MBytes  15.6 Mbits/sec                  
[  5]   2.00-3.00   sec  3.09 MBytes  25.9 Mbits/sec                  
[  5]   3.00-4.00   sec  3.02 MBytes  25.3 Mbits/sec                  
[  5]   4.00-5.00   sec  5.80 MBytes  48.6 Mbits/sec                  
[  5]   5.00-6.00   sec  2.84 MBytes  23.8 Mbits/sec                  
[  5]   6.00-7.00   sec  3.28 MBytes  27.5 Mbits/sec                  
[  5]   7.00-8.00   sec  4.79 MBytes  40.2 Mbits/sec                  
[  5]   8.00-9.00   sec  5.50 MBytes  46.2 Mbits/sec                  
[  5]   9.00-10.00  sec  3.32 MBytes  27.8 Mbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.03  sec  37.7 MBytes  31.5 Mbits/sec  1595             sender
[  5]   0.00-10.00  sec  37.5 MBytes  31.5 Mbits/sec                  receiver

iperf Done.
CoreELEC:~ # iperf3 -c 192.168.10.1 -R
Connecting to host 192.168.10.1, port 5201
Reverse mode, remote host 192.168.10.1 is sending
[  5] local 192.168.10.223 port 36856 connected to 192.168.10.1 port 5201
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec  1.03 MBytes  8.61 Mbits/sec                  
[  5]   1.00-2.00   sec   468 KBytes  3.83 Mbits/sec                  
[  5]   2.00-3.00   sec  2.43 MBytes  20.4 Mbits/sec                  
[  5]   3.00-4.00   sec  1.05 MBytes  8.82 Mbits/sec                  
[  5]   4.00-5.00   sec  1.77 MBytes  14.9 Mbits/sec                  
[  5]   5.00-6.00   sec   665 KBytes  5.44 Mbits/sec                  
[  5]   6.00-7.00   sec   123 KBytes  1.01 Mbits/sec                  
[  5]   7.00-8.00   sec  5.37 MBytes  45.1 Mbits/sec                  
[  5]   8.00-9.00   sec  2.21 MBytes  18.5 Mbits/sec                  
[  5]   9.00-10.00  sec   653 KBytes  5.35 Mbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.03  sec  15.9 MBytes  13.3 Mbits/sec  728             sender
[  5]   0.00-10.00  sec  15.7 MBytes  13.2 Mbits/sec                  receiver

iperf Done.
CoreELEC:~ # ethtool -s eth0 speed 100 duplex full
CoreELEC:~ # iperf3 -c 192.168.10.1 -R
Connecting to host 192.168.10.1, port 5201
Reverse mode, remote host 192.168.10.1 is sending
[  5] local 192.168.10.223 port 36862 connected to 192.168.10.1 port 5201
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec  11.3 MBytes  95.1 Mbits/sec                  
[  5]   1.00-2.00   sec  11.2 MBytes  94.1 Mbits/sec                  
[  5]   2.00-3.00   sec  11.2 MBytes  94.2 Mbits/sec                  
[  5]   3.00-4.00   sec  11.2 MBytes  94.1 Mbits/sec                  
[  5]   4.00-5.00   sec  11.2 MBytes  94.1 Mbits/sec                  
[  5]   5.00-6.00   sec  11.2 MBytes  94.2 Mbits/sec                  
[  5]   6.00-7.00   sec  11.2 MBytes  94.1 Mbits/sec                  
[  5]   7.00-8.00   sec  11.2 MBytes  94.2 Mbits/sec                  
[  5]   8.00-9.00   sec  11.2 MBytes  94.2 Mbits/sec                  
[  5]   9.00-10.00  sec  11.2 MBytes  94.1 Mbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.03  sec   113 MBytes  94.6 Mbits/sec    0             sender
[  5]   0.00-10.00  sec   112 MBytes  94.2 Mbits/sec                  receiver

iperf Done.
CoreELEC:~ # 

Tried different images of CoreElec from Krescue SD.

On preinstalled Android everything works fine.