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.