2.5Gbps port, or USB 1Gbps Startech unlink during transfers


Recommended Posts

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 by Demodude123
add armbian upload
Link to post
Share on other sites
  • Demodude123 changed the title to 2.5Gbps port, or USB 1Gbps Startech unlink during transfers
Donate and support the project!

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

Link to post
Share on other sites

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 by Demodude123
Link to post
Share on other sites

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

Link to post
Share on other sites

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.

 

 

Link to post
Share on other sites