Demodude123 Posted November 17, 2020 Posted November 17, 2020 (edited) I'm on the Ubuntu focal release for the Helios64: Kernel: 5.8.14-rockchip64 If I try transferring between the 2.5Gbps port and my computer, either linked at 2.5Gbps or 1Gbps, will unlink. I tried with a StarTech USB 3.0 port, linking at 1Gbps, and the same issue occurs, leading me to believe it's a software issue with the USB driver. lsusb -t, with the startech plugged in: root@helios64:/helios# lsusb -t /: Bus 06.Port 1: Dev 1, Class=root_hub, Driver=ohci-platform/1p, 12M /: Bus 05.Port 1: Dev 1, Class=root_hub, Driver=ehci-platform/1p, 480M /: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 5000M /: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 480M /: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 5000M |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 5000M |__ Port 1: Dev 5, If 0, Class=Vendor Specific Class, Driver=ax88179_178a, 5000M |__ Port 2: Dev 4, If 0, Class=Mass Storage, Driver=uas, 5000M |__ Port 4: Dev 3, If 0, Class=Vendor Specific Class, Driver=r8152, 5000M /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 480M |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M root@helios64:/helios# [0] 0:bash- 1:bash* What I see with iperf: │Accepted connection from 192.168.1.20, port 56104 iperf Done. │[ 5] local 192.168.1.10 port 5201 connected to 192.168.1.20 port 56106 justin@justin-3900x:~$ iperf3 -c 192.168.1.10 │[ ID] Interval Transfer Bitrate Connecting to host 192.168.1.10, port 5201 │[ 5] 0.00-1.00 sec 251 MBytes 2.10 Gbits/sec [ 5] local 192.168.1.20 port 56106 connected to 192.168.1.10 port 5201 │[ 5] 1.00-2.00 sec 281 MBytes 2.36 Gbits/sec [ ID] Interval Transfer Bitrate Retr Cwnd │[ 5] 2.00-3.00 sec 276 MBytes 2.32 Gbits/sec [ 5] 0.00-1.00 sec 258 MBytes 2.16 Gbits/sec 0 1.48 MBytes │[ 5] 3.00-4.00 sec 275 MBytes 2.30 Gbits/sec [ 5] 1.00-2.00 sec 278 MBytes 2.33 Gbits/sec 0 1.48 MBytes │[ 5] 4.00-5.00 sec 281 MBytes 2.36 Gbits/sec [ 5] 2.00-3.00 sec 276 MBytes 2.32 Gbits/sec 0 1.48 MBytes │[ 5] 5.00-6.00 sec 281 MBytes 2.35 Gbits/sec [ 5] 3.00-4.00 sec 278 MBytes 2.33 Gbits/sec 0 1.48 MBytes │[ 5] 6.00-7.00 sec 281 MBytes 2.35 Gbits/sec [ 5] 4.00-5.00 sec 278 MBytes 2.33 Gbits/sec 0 1.48 MBytes │[ 5] 7.00-8.00 sec 281 MBytes 2.35 Gbits/sec [ 5] 5.00-6.00 sec 281 MBytes 2.36 Gbits/sec 0 1.48 MBytes │[ 5] 8.00-9.00 sec 276 MBytes 2.31 Gbits/sec [ 5] 6.00-7.00 sec 280 MBytes 2.35 Gbits/sec 0 1.48 MBytes │[ 5] 9.00-10.00 sec 268 MBytes 2.25 Gbits/sec [ 5] 7.00-8.00 sec 281 MBytes 2.36 Gbits/sec 0 1.48 MBytes │[ 5] 10.00-10.00 sec 395 KBytes 2.40 Gbits/sec [ 5] 8.00-9.00 sec 279 MBytes 2.34 Gbits/sec 0 1.48 MBytes │- - - - - - - - - - - - - - - - - - - - - - - - - [ 5] 9.00-10.00 sec 265 MBytes 2.22 Gbits/sec 0 1.48 MBytes │[ ID] Interval Transfer Bitrate - - - - - - - - - - - - - - - - - - - - - - - - - │[ 5] 0.00-10.00 sec 2.69 GBytes 2.31 Gbits/sec receiver [ ID] Interval Transfer Bitrate Retr │----------------------------------------------------------- [ 5] 0.00-10.00 sec 2.69 GBytes 2.31 Gbits/sec 0 sender │Server listening on 5201 [ 5] 0.00-10.00 sec 2.69 GBytes 2.31 Gbits/sec receiver │----------------------------------------------------------- │Accepted connection from 192.168.1.20, port 56110 iperf Done. │[ 5] local 192.168.1.10 port 5201 connected to 192.168.1.20 port 56112 justin@justin-3900x:~$ iperf3 -c 192.168.1.10 -R │[ ID] Interval Transfer Bitrate Retr Cwnd Connecting to host 192.168.1.10, port 5201 │[ 5] 0.00-1.00 sec 153 MBytes 1.29 Gbits/sec 0 1.41 KBytes Reverse mode, remote host 192.168.1.10 is sending │[ 5] 1.00-2.00 sec 0.00 Bytes 0.00 bits/sec 0 1.41 KBytes [ 5] local 192.168.1.20 port 56112 connected to 192.168.1.10 port 5201 │[ 5] 2.00-3.00 sec 0.00 Bytes 0.00 bits/sec 0 1.41 KBytes [ ID] Interval Transfer Bitrate │[ 5] 3.00-4.00 sec 0.00 Bytes 0.00 bits/sec 0 1.41 KBytes [ 5] 0.00-1.00 sec 150 MBytes 1.26 Gbits/sec │[ 5] 4.00-5.00 sec 0.00 Bytes 0.00 bits/sec 0 1.41 KBytes [ 5] 1.00-2.00 sec 0.00 Bytes 0.00 bits/sec │[ 5] 5.00-6.00 sec 0.00 Bytes 0.00 bits/sec 0 1.41 KBytes [ 5] 2.00-3.00 sec 0.00 Bytes 0.00 bits/sec │[ 5] 6.00-7.00 sec 0.00 Bytes 0.00 bits/sec 0 1.41 KBytes [ 5] 3.00-4.00 sec 0.00 Bytes 0.00 bits/sec │[ 5] 7.00-8.00 sec 0.00 Bytes 0.00 bits/sec 0 1.41 KBytes [ 5] 4.00-5.00 sec 0.00 Bytes 0.00 bits/sec │[ 5] 8.00-9.00 sec 0.00 Bytes 0.00 bits/sec 0 1.41 KBytes [ 5] 5.00-6.00 sec 0.00 Bytes 0.00 bits/sec │[ 5] 9.00-10.00 sec 0.00 Bytes 0.00 bits/sec 0 1.41 KBytes [ 5] 6.00-7.00 sec 0.00 Bytes 0.00 bits/sec │- - - - - - - - - - - - - - - - - - - - - - - - - [ 5] 7.00-8.00 sec 0.00 Bytes 0.00 bits/sec │[ ID] Interval Transfer Bitrate Retr [ 5] 8.00-9.00 sec 0.00 Bytes 0.00 bits/sec │[ 5] 0.00-10.00 sec 153 MBytes 129 Mbits/sec 0 sender │ sudo ethtool -K eth1 tx off - this does lower the speed as expected, but it will still unlink after some time. I've also had times where iperf3 works fine, but then doing a smb share, it lasts for just a few seconds before the link dies. Any idea? If it's happening to both the startech and the internal realtek usb, I'm not sure where the software issue is... armbianmonitor -u http://ix.io/2Etm Edited November 17, 2020 by Demodude123 add armbian upload
gprovost Posted November 18, 2020 Posted November 18, 2020 A bit hard based on your message to know clearly what is connected to what at which link speed. 12 hours ago, Demodude123 said: I tried with a StarTech USB 3.0 port, linking at 1Gbps, and the same issue occurs, leading me to believe it's a software issue with the USB driver. Hmmm that's interesting info. Do you see the same issue (link drop during smb access) when using the Helios64 1GbE port ? Just to arrow down the problem to purely USB-to-LAN. Going to try to same thing on my side i have similar adapter based ax88179_178a
Demodude123 Posted November 19, 2020 Author Posted November 19, 2020 (edited) I see the issue in all 'USB'-backed combos. It happens on the 2.5Gbps linked at 2.5Gbps, the 2.5Gbps linked at 1Gbps, and to a startech usb3 1Gbps plugged into any port on the helios, linked at 1Gbps. My tower has a PCIe 2.5GBps and a 1Gbps built into the motherboard. I saw this result with both. My tower runs Ubuntu 20.04 stable with the 5.4 kernel. I've never had network issues with it. Since the Helios64 2.5Gbps is run off the USB, that leads me to believe there's something wrong with the kernel/usb driver. (since both the USB backed 2.5Gbps and an external USB Startech 1Gbps have the issue). For what it's worth - I have not performed the 1Gbps performance fix mentioned in the latest blog. You should be able to recreate with a few iperf3's back to back. One direction will always succeed, pulling nearly 2.5Gbps, and the other will fail after a few tries. Edited November 19, 2020 by Demodude123
Demodude123 Posted November 21, 2020 Author Posted November 21, 2020 I was able to recreate this with the latest test build: Armbian_20.11.0-trunk.32_Helios64_focal_current_5.9.8.img.xz - and put it on an SD card. I did compile and install zfs, but then tried iperf3 tx. Here's my armbianmonitor -u stats. It includes a kernel panic in dmesg against the r8152 driver. After which, the iperf3 drops to 0bits, restarts the NIC, the transfer continues, but keeps crashing over and over, until it gives up. http://ix.io/2F07
gprovost Posted November 23, 2020 Posted November 23, 2020 Have you tried with Kernel 4.4 ? For me it still looks like issue related to TX checksum offload not working properly on LK5.x I cannot reproduce the issue on my setups. Can you post some iperf output of the USB Startech 1Gbps issue. When doing the iperf test with the USB Startech 1Gbps please insure the 2.5GbE is disconnected, just to be sure traffic is transiting only through the Startech adapter.
Demodude123 Posted December 3, 2020 Author Posted December 3, 2020 I think I had a double issue. I have a realtek card from the same family in the desktop I am testing. I think my desktop needs the https://github.com/igorpecovnik/realtek-r8152-linux patch. For now, I've switched cables around so I can use the 2.5Gps port at 100MBps at our home lan, and the 1Gps port directly into my motherboard port. The 2.5G card in the desktop is a pcie card. I'll keep it this way until the TX checksum offload issue is resolved. Thanks for your help. 1
Recommended Posts