On Thursday, February 8, 2018 5:37:25 PM EST Greg KH wrote: > On Thu, Feb 08, 2018 at 10:53:20AM -0500, Tomasz Janowski wrote: > > On Thursday, February 8, 2018 3:43:05 PM EST Greg KH wrote: > > > On Thu, Feb 08, 2018 at 02:16:08PM +0000, Tomasz Janowski, Ph.D. wrote: > > > > Dear USB developers, > > > > > > > > Based on my google research, the problem I experience seems to happen > > > > with some newer smartphones. My test case is Samsung Galaxy S8 > > > > (SM-950U1). > > > > I am trying to use USB tethering and everything seems to work as > > > > expected > > > > (modules are loaded, Ethernet devices are up and running, dhcp works > > > > fine). I can connect to the external world using both LTE or wireless > > > > network on the phone. > > > > > > > > Now, the problem is that the download speeds are terrible, around 64 > > > > KB/s, > > > > while uploads are fast, the order of 15 MB/s. These speeds do not > > > > depend > > > > on the wireless service provider: the results are similar when I > > > > tether > > > > wi-fi. The USB Ethernet interface on the Linux host reports a lot of > > > > receive errors (attached: device_state.txt), while kernel reports bad > > > > rndis messages (attached: kernel.log.txt). > > > > > > > > Windows 10 works great with the same hardware (same PC and same > > > > phone), > > > > with uploads and downloads in the order of 150 Mbit/s, which is > > > > probably > > > > as fast as my wireless network can do. But some people reported issues > > > > with older Windows drivers too. Is possible that some newer version of > > > > RNDIS protocol is around and Linux hasn't updated its RNDIS module > > > > yet? > > > > > > Hey, I was _just_ talking to someone at Google about this same issue > > > yesterday, you beat him sending this same type of report to the mailing > > > list, nice job :) > > > > > > Yes, this is not good, and we should work to resolve this, but first, > > > what kernel version are you using? I think some fixes for the rndis > > > driver went in recently to 4.15, but it would be good to verify that > > > this isn't already resolved. > > > > The error messages which I have attached were produced by a precompiled > > Debian kernel: "Linux version 4.14.0-0.bpo.3-amd64 > > (debian-kernel@xxxxxxxxxxxxxxxx) (gcc version 6.3.0 20170516 (Debian > > 6.3.0-18)) #1 SMP Debian 4.14.13-1~bpo9+1 (2018-01-14)". > > > > But I have downloaded the most recent version of the kernel from the > > official git repository (last commit: Jan 31, 2018) and it had exactly > > the same problem. Unless a patch was submitted within the last week, the > > issue is still there. > > > > Should I get the version as of today and test it again? > > If you find a 4.15 tree, that would be great to test, but odds are, the > issues are still there. > > I'll try to carve out some time to look at this tomorrow, as I have a > bunch of Android devices to test with, and there's no good reason why > Windows should be slower than Linux for stuff like this. We should be > able to go as fast as the device lets us. Most likely we are doing > something "stupid" in the rndis driver somewhere :) > Thanks a lot! I have tested with kernel downloaded from: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git The version was 4.15.0+, so I guess that was cutting edge kernel as of 01/31/2018. Just to clarify, Windows is faster than Linux. 64 KB/s in Linux makes the USB tethering not so useful, and if the "PC" is a laptop, one can live with wi-fi hotspot, which works fine. Desktop PC must use USB. I also thought that USB has a greater potential to deliver better throughput than wifi hotspot. I have tested another phone, Galaxy J7 Pro (2017 version). That phone uses a different hardware, different USB connector, and an older kernel version. J7 works fine with current Linux kernel, so it is necessary to use as recent Android (and possibly hardware) as possible. Thanks! Tomasz -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html