Subject: Fw: [Bug 212731] New: USB Ethernet adapter ASIX AX88179 disconnects under heavy load.

From: Stephen Hemminger <[email-masked]>
Date: Tue, 20 Apr 2021 07:47:23 -0700

Begin forwarded message:

Date: Tue, 20 Apr 2021 02:24:51 +0000
From: [email-masked]
To: [email-masked]
Subject: [Bug 212731] New: USB Ethernet adapter ASIX AX88179 disconnects under heavy load.

https://bugzilla.kernel.org/show_bug.cgi?id=212731

            Bug ID: 212731
           Summary: USB Ethernet adapter ASIX AX88179 disconnects under
                    heavy load.
           Product: Networking
           Version: 2.5
    Kernel Version: 5.11.13
          Hardware: All
                OS: Linux
              Tree: Mainline
            Status: NEW
          Severity: normal
          Priority: P1
         Component: Other
          Assignee: [email-masked]
          Reporter: [email-masked]
        Regression: No

Hi!

I bought three USB3.0-Ethernet adapters (AX88179) on Aliexpress in attempt to
make three small arm servers from scavenged tablets.

Two of the tablets are Allwinnwer A10 based and one is based on Amlogic
8726-MX.
For A10 tablets I compiled the latest mainline kernel (5.11.13). For Amlogic I
compiled kernel sources which they provided in 2014 (3.10.10). All boards have
Ubuntu 20.04 rootfs.
I tried ax88179 driver included in kernel, I also tested the latest driver from
ASIX web site. All possible combinations of these boards, kernels and drivers
have similar problem:

When I install and run transmission-daemon to download some torrents - network
connection between tablet and external devices disappears (Transmission loses
connection too). From inside of tablet I can ping ASIX adapter's IP, but I
can't ping router or any Internet address. I can't ping tablet from outside. 
Adapter's LINK LED in ON and even ACT LED is blinking but there is no actual
connection.
There are no (relevant) error messages in syslog or dmesg.

I tried to disable green ethernet etc - didn't help (options ax88179_178a
bEEE=0 bGETH=0).
I tried to find some buffers I could increase or some options like ethernet
flow control that could possibly help me, but ethtool refuses to set any of
them which is strange, because all those options are available in driver for
Windows OS.

I also tried to provide separate power supply for the adapter, add more
capacitors to stabilize adapter's power supply, used different USB ports and
external hubs, different ethernet cables... it changed nothing.

When systemd-networkd is used to manage network, the connectivity of dead
adapter usually could be restored by replugging ethernet cable. I can see "link
state is 0   link state is 1" in syslog
The connectivity can also be restored by running 
ip link set dev usbnet0 down 
ip link set dev usbnet0 up

The amount of time between the launch of Transmission and network disappearance
is usually less than 5 minutes on download speed about 20-40Mbps ( 3 files, 10
peers each). If download speed is limited in Transmission's config  to less
than 10Mbps - the time before network disappearance can be much larger but the
device could stay online for 5 hours and then have dozen of disconnects during
the sixth hour. So this timeout is unsteady.

I also made a test on DELL Latitude 3490 laptop with latest KDE Neon installed
(I think it has Ubuntu's x86_64 kernel as is). The problem with adapter remains
on conventional laptop too. After a few minutes of downloading the message
appears "Limited connection. The adapter appears to be connected to network but
Internet in unreachable" - something like that.

Then I connected my laptop to my network provider directly (bypassing router) -
the problem remained. 

So the problem is not in my switch/router or my old ARM boards. It is either
adapter itself or something in the software. 

And finally, I made two tests on the same laptop running Windows 10. I used
uTorrent instead of Transmission but with the same heavy load.
The adapter works flawlessly on Windows under any load. At least during 24
hours.

So, I think there is some problem with driver for AX88179 devices.
I hope actually, that the problem is just in the size of some buffers in USB or
TCP/IP stack, but I have no clue what could it be.
I use some tuning of TCP/IP for higher network load on my other device:

net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.udp_mem = 8388608 12582912 16777216
net.ipv4.tcp_rmem = 4096 87380 8388608
net.ipv4.tcp_wmem = 4096 65536 8388608

but it doesn't help me with ASIX.

-- 
You may reply to this email to add a comment.

You are receiving this mail because:
You are the assignee for the bug.