After searching all through Google and Ask Ubuntu I couldn't find a fix to my problem: I have a Dell XPS 13 running Windows 10 and Ubuntu 16.04 with Dual-boot and my internet download speed works just fine but my upload speed is way slower than my speed on Windows, and honestly I can't get any work done that way.

Here are my Internet test results:

$ curl -s https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py | python -
Retrieving speedtest.net configuration...
Testing from Bezeq International (
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by Partner (Tel Aviv) [1.56 km]: 30.989 ms
Testing download speed................................................................................
Download: 33.93 Mbit/s
Testing upload speed................................................................................................
Upload: 0.15 Mbit/s

Results for: sudo lshw -C net:

$ sudo lshw -C net
[sudo] password for liorscha: 
       description: Wireless interface
       product: QCA6174 802.11ac Wireless Network Adapter
       vendor: Qualcomm Atheros
       physical id: 0
       bus info: pci@0000:3a:00.0
       logical name: wlp58s0
       version: 32
       serial: 9c:b6:d0:e6:d5:79
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless
       configuration: broadcast=yes driver=ath10k_pci driverversion=4.13.0-38-generic firmware=WLAN.RM.4.4.1-00051-QCARMSWP-1 ip= latency=0 link=yes multicast=yes wireless=IEEE 802.11
       resources: irq:286 memory:dc000000-dc1fffff

Results for iwlist wlan0 s:

wlan0     Interface doesn't support scanning.`

Results for lsmod | grep ath10:

ath10k_pci             45056  0
ath10k_core           352256  1 ath10k_pci
ath                    28672  1 ath10k_core
mac80211              782336  1 ath10k_core
cfg80211              614400  3 mac80211,ath,ath10k_core

These are the things I already tried:

  1. sudo apt-get install --reinstall linux-firmware
  2. Copying drivers from git repos to /lib/firmware/ath10k/QCA6174/*
  3. Preferring IPV4 on IPV6
  4. Encrypting with software instead of hardware


This solved it for me.

2 Answers 2


You appear to be affected by this bug. There are 68 posts of problems and suggestions. The latest one suggests to:

  • Disable power saving
  • Use latest kernel version - I'm using 4.14.34 and have had no problems on the 4.14 chain which is LTS (Long Term Support) for 6 years.

##May 4, 2019 update

Over a year ago, but after the original answer was posted, a bug fix came out. It happened during the kernel 4.16-rc5 release and the source code change comments state:

Achieved throughput for different values of sk_pacing_shift (average of 5 iterations of 10-sec netperf runs to a host on the other side of the WiFi hop):

  • sk_pacing_shift 10: 43.21 Mbps (pre-patch)
  • sk_pacing_shift 9: 78.17 Mbps
  • sk_pacing_shift 8: 123.94 Mbps
  • sk_pacing_shift 7: 128.31 Mbps

Latency for competing flows increases from ~3 ms to ~10 ms with this change. This is about the same magnitude of queueing latency induced by flows that are not originated on the WiFi device itself (and so are not limited by TSQ).

Signed-off-by: Toke Høiland-Jørgensen

Instinctively you think a kernel greater than 4.15 is required to get the bug fix. This is not so as the next section explains.

Kernel 4.16-rc5 through Kernel 5.0 bug fixes are in 4.14.114 LTS

I'm still on kernel 4.14.xxx LTS (Long Term Support) which has another 5 years of updates coming for it including the 4.16 patch above and recent kernel 5.0 bug fixes.

To prove the bug fix is there go to where my current kernel 4.14.114 is:

It says:

To obtain the source from which they are built fetch the commit below:

git://git.launchpad.net/~ubuntu-kernel-test/ubuntu/+source/linux/+git/mainline-crack v4.14.114
  • Copy and paste the address into your web browser and press Enter
  • Google search comes up
  • Click the first link
  • A web page appears: https://code.launchpad.net/~ubuntu-kernel-test/ubuntu/+source/linux/+git/mainline-crack/+ref/master
  • Scroll to the bottom and select All commits
  • The commit we are looking for is 10,000 messages back which is a lot of scrolling and searching.
  • To speed the process up type Adjust TSQ pacing shift into the search field.
  • An abbreviated result appears so click Expand and you will see:

ubuntu kernel commits

  • Thank you! I found the solution at the link you sent. wiki.archlinux.org/index.php/Dell_XPS_13_(9360)#Wireless This solved it eventually
    – Lischach
    Apr 17, 2018 at 19:16
  • Great. As you are new here, please click the check mark next to thus answer to help others searching on same issue. Apr 17, 2018 at 20:04
  • I had to recompile the kernel and upgrade to 4.19.38. Bounty added to reward you for pointing me in the right direction. 0:-)
    – Fabby
    May 4, 2019 at 9:30
  • @Fabby You are too kind. Thank you. I spent time improving the answer to highlight how the new bug fixes in 4.16-rc5 are rolled into the 4.14.xxx LTS kernel chain. May 4, 2019 at 23:55
  • I'm on 16.04 and the 4.19.38 custom kernel now. Want me to leave it open until the last possible moment?
    – Fabby
    May 5, 2019 at 8:47

I can confirm this issue is related to bug #1670041 as @WinEunuuchs2Unix posted. FYI, my PCI-E wireless adapter is TP-LINK TL-WDN4800:

lspci -nn |grep -i wireless

Network controller [0280]: Qualcomm Atheros AR93xx Wireless Network Adapter [168c:0030] (rev 01)

The low throughput with transmit TCP streams on ath10k should be fixed with this mac80211 commit:

mac80211: Adjust TSQ pacing shift


Apparently v4.16-rc5 was the first release to have that commit.

Upgrading my kernel to 4.17 (former is 4.14 LTS) fixes this.

  • I noticed you posted a similar answer on a few websites. Commits from kernel 4.16 that deal with patches like mac80211: Adjust TSQ pacing shift are rolled into the 4.14.xxx LTS kernel chain. I've updated my answer to confirm. May 5, 2019 at 14:05

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .