Jump to content

g_ether and g_ncm download throughput on mainline (5.3.9, 4.19.62) degraded comparing to legacy 3.4.113


mostly

Recommended Posts

Armbianmonitor:

 

I'm using g_ether to connect OrangePiPc+ to network over USB OTG. On legacy kernel, that was giving 140 Mbits/sec  IN (download from network to OrangePiPc+) and 170 Mbits/sec OUT. After upgrading to mainline kernel 4.19.62 (or 5.3.9), IN throughput degraded to 93-98 Mbits/sec (while OUT improved reaching up to 210 Mbits/sec in CDC EEM mode). 

This easily reproducible on both my boards OrangePiPc+ and OrangePiZero with latest Bionic images (clean installations + "modprobe g_ether iProduct="Linux-USB Ethernet/RNDIS Gadget" iManufacturer="Netchip Technology, Inc." dev_addr=02:81:05:F0:5C:24 host_addr=02:81:05:F0:5C:23 use_eem=0" ).

Any ideas where is the bottleneck and how to resolve it?

Tried several USB cables and USB host devices. Throughput measured by iperf; samba and nfs are showing the same. ifconfig stats indicating 0 tx/rx errors.

Link to comment
Share on other sites

Still trying to solve this. Problem reproducible on clean installation of Armbian_19.11.3_Orangepipcplus_bionic_current_5.3.9 . Behavior is the same as on 4.19.62 (despite minor improvements in both uplink and downlink).

Welcome to Armbian Bionic with Linux 5.3.9-sunxi
root@orangepipcplus:~# iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size:  128 KByte (default)
------------------------------------------------------------
[  4] local 192.168.1.170 port 5001 connected with 192.168.1.1 port 24443
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-10.1 sec   125 MBytes   103 Mbits/sec
^Croot@orangepipcplus:~# iperf -c 192.168.1.1
------------------------------------------------------------
Client connecting to 192.168.1.1, TCP port 5001
TCP window size: 43.8 KByte (default)
------------------------------------------------------------
[  3] local 192.168.1.170 port 32978 connected with 192.168.1.1 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec   258 MBytes   216 Mbits/sec

g_ncm gives the same pattern, difference between uplink and downlink is bit higher.

 

Tried connecting OrangePiZero (as mentioned before, it has the same download throughput degradation problem) as gadget to regular USB port of OrangePiPcPlus, and speed in direction OrangePiZero->OrangePiPcPlus is around 200 Mbits/sec, and OrangePiPcPlus->OrangePiZero is around 100 Mbits/sec.  So networking and host USB drivers are still able to process inbound 200 Mbits/sec, and 100 Mbits/sec bottleneck is probably somewhere around otg/gadget drivers level.

 

In the meantime, found similar problem report describing highly asymmetric speeds when using cdc_ncm. Might be the same issue but that case had been solved by moving to some NIC-specific driver

 

Added armbianmonitor -u from 5.3.9.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines