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
I checked the version. My board is V12 version
Are you checked this? What about results?
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.
We checked on another board and it works ok. It was a defective device.
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.