Hi Eric,

This compares Cubic with BBR with 4.13-rc2 (which has a few new commits
to bbr.c):

wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode
DORMANT group default qlen 1000

$ cat  /proc/sys/net/ipv4/tcp_congestion_control
cubic
$ iperf3 -c
Connecting to host , port 5201
[  4] local  port 35242 connected to  port 5201
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  4]   0.00-1.00   sec  2.34 MBytes  19.6 Mbits/sec    0   26.9 KBytes
[  4]   1.00-2.00   sec  2.45 MBytes  20.6 Mbits/sec    0   26.9 KBytes
[  4]   2.00-3.00   sec  2.36 MBytes  19.8 Mbits/sec    0   26.9 KBytes
[  4]   3.00-4.00   sec  2.43 MBytes  20.4 Mbits/sec    0   26.9 KBytes
[  4]   4.00-5.00   sec  2.42 MBytes  20.3 Mbits/sec    0   26.9 KBytes
[  4]   5.00-6.00   sec  2.33 MBytes  19.5 Mbits/sec    0   29.7 KBytes
[  4]   6.00-7.00   sec  2.48 MBytes  20.8 Mbits/sec    0   29.7 KBytes
[  4]   7.00-8.00   sec  2.27 MBytes  19.1 Mbits/sec    0   29.7 KBytes
[  4]   8.00-9.00   sec  2.45 MBytes  20.6 Mbits/sec    0   29.7 KBytes
[  4]   9.00-10.00  sec  2.43 MBytes  20.4 Mbits/sec    0   29.7 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec  24.0 MBytes  20.1 Mbits/sec    0             sender
[  4]   0.00-10.00  sec  23.9 MBytes  20.1 Mbits/sec                  receiver
$ echo bbr > /proc/sys/net/ipv4/tcp_congestion_control
$ iperf3 -c
Connecting to host , port 5201
[  4] local  port 35246 connected to  port 5201
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  4]   0.00-1.00   sec  1.69 MBytes  14.2 Mbits/sec    0   8.48 KBytes
[  4]   1.00-2.00   sec  1.59 MBytes  13.4 Mbits/sec    0   8.48 KBytes
[  4]   2.00-3.00   sec  1.43 MBytes  12.0 Mbits/sec    0   8.48 KBytes
[  4]   3.00-4.00   sec  1.63 MBytes  13.6 Mbits/sec    0   8.48 KBytes
[  4]   4.00-5.00   sec  1.59 MBytes  13.4 Mbits/sec    0   8.48 KBytes
[  4]   5.00-6.00   sec  1.50 MBytes  12.6 Mbits/sec    0   8.48 KBytes
[  4]   6.00-7.00   sec  1.59 MBytes  13.3 Mbits/sec    0   8.48 KBytes
[  4]   7.00-8.00   sec  1.59 MBytes  13.3 Mbits/sec    0   8.48 KBytes
[  4]   8.00-9.00   sec  1.60 MBytes  13.4 Mbits/sec    0   8.48 KBytes
[  4]   9.00-10.00  sec  1.63 MBytes  13.6 Mbits/sec    0   8.48 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec  15.8 MBytes  13.3 Mbits/sec    0             sender
[  4]   0.00-10.00  sec  15.8 MBytes  13.2 Mbits/sec                  receiver

Hope that helps.

Taking a step back, the original issue for me here is that using a
MacBook Air at the same location and with the same BSSID throughput (for
TCP is about 100Mbits/sec). Of course it's a different phy and stack but
we should be able to get much better throughput from the Atheros phy,
driver and TCP stack in this scenario without very much tuning.

Patching tcp_output.c as above did make a significant difference (though
not quite making up the full difference) but it looks like using BBR on
the client doesn't.

Are you thinking the solution lies down the path of  using BBR? Could
you tell what you would expect to see results-wise in using BBR over
others in this scenario?

Thanks! Appreciate your input to this!

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/1670041

Title:
  Poor performance of Atheros QCA6174 802.11ac (rev 32) (Killer Wireless
  1535)

Status in linux package in Ubuntu:
  In Progress
Status in linux source package in Zesty:
  In Progress

Bug description:
  Update (2017-05-20):
  Kalle Valo suggested a hack which increased client -> AP TCP performance - so 
it does not look like a firmware issue as I thought originally, rather an 
ath10k driver issue:
  https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1670041/comments/11
  https://patchwork.kernel.org/patch/5784701/ (the hack is at the bottom)
  Tested here:
  https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1670041/comments/17

  Update: added some forensics in the paste (a long read):
  http://paste.ubuntu.com/24118478/

  -----

  3b:00.0 Network controller: Qualcomm Atheros QCA6174 802.11ac Wireless 
Network Adapter (rev 32)
  qca6174 hw3.2 target 0x05030000 chip_id 0x00340aff sub 1a56:1535

  Original message:
  ------
  I experience a very poor 802.11ac performance of a QCA6174 Wireless card 
(Killer Wireless 1535).

  This is a dev version of Zesty with a recently released 4.10 kernel:

  uname -r
  4.10.0-9-generic

  dpkg -l linux-firmware | grep ii
  ii  linux-firmware 1.163        all          Firmware for Linux kernel drivers

  lspci -vvv:

  ...
  3b:00.0 Network controller: Qualcomm Atheros QCA6174 802.11ac Wireless 
Network Adapter (rev 32)
          Subsystem: Bigfoot Networks, Inc. QCA6174 802.11ac Wireless Network 
Adapter
          Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- 
Stepping- SERR- FastB2B- DisINTx+
          Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- 
<TAbort- <MAbort- >SERR- <PERR- INTx-
          Latency: 0, Cache Line Size: 64 bytes
          Interrupt: pin A routed to IRQ 334
          Region 0: Memory at dd200000 (64-bit, non-prefetchable) [size=2M]
          Capabilities: <access denied>
          Kernel driver in use: ath10k_pci
          Kernel modules: ath10k_pci

  -----------------------------------------

  Testing wireless speed with RT-87U 802.11ac router shows that the
  speed is only 27.3 megabits per second which is very low for an
  802.11ac card:

  iperf -c rtr
  ------------------------------------------------------------
  Client connecting to rtr, TCP port 5001
  TCP window size: 85.0 KByte (default)
  ------------------------------------------------------------
  [  3] local 10.10.10.78 port 48930 connected with 10.10.10.1 port 5001
  [ ID] Interval       Transfer     Bandwidth
  [  3]  0.0-10.0 sec  32.6 MBytes  27.3 Mbits/sec

  ------------------------------------

  For comparison, on the same network (from the same distance to the
  router) I have the following result with an Intel's card (on a 4.8
  kernel, different laptop):

  UX32LN:~$ lspci | grep 7260
  02:00.0 Network controller: Intel Corporation Wireless 7260 (rev bb)

  UX32LN:~$ iperf -c rtr
  ------------------------------------------------------------
  Client connecting to rtr, TCP port 5001
  TCP window size: 85.0 KByte (default)
  ------------------------------------------------------------
  [ 3] local 10.10.10.208 port 37196 connected with 10.10.10.1 port 5001
  [ ID] Interval Transfer Bandwidth
  [ 3] 0.0-10.1 sec 237 MBytes 198 Mbits/sec
  administrator@UX32LN:~$ lsp
  lspci lspcmcia lspgpot

  200 Mbps is much better.

  -----------------------------------

  Back to the problematic card:

  Booted 16.04.2 with the rolling HWE kernel 4.8:

  journalctl -k | grep -i ath
  Mar 04 18:28:31 ubuntu kernel: ath10k_pci 0000:3b:00.0: enabling device (0000 
-> 0002)
  Mar 04 18:28:31 ubuntu kernel: ath10k_pci 0000:3b:00.0: pci irq msi 
oper_irq_mode 2 irq_mode 0 reset_mode 0
  Mar 04 18:28:31 ubuntu kernel: ath10k_pci 0000:3b:00.0: Direct firmware load 
for ath10k/pre-cal-pci-0000:3b:00.0.bin failed with error -2
  Mar 04 18:28:31 ubuntu kernel: ath10k_pci 0000:3b:00.0: Direct firmware load 
for ath10k/cal-pci-0000:3b:00.0.bin failed with error -2
  Mar 04 18:28:31 ubuntu kernel: ath10k_pci 0000:3b:00.0: Direct firmware load 
for ath10k/QCA6174/hw3.0/firmware-5.bin failed with error -2
  Mar 04 18:28:31 ubuntu kernel: ath10k_pci 0000:3b:00.0: could not fetch 
firmware file 'ath10k/QCA6174/hw3.0/firmware-5.bin': -2
  Mar 04 18:28:31 ubuntu kernel: ath10k_pci 0000:3b:00.0: qca6174 hw3.2 target 
0x05030000 chip_id 0x00340aff sub 1a56:1535
  Mar 04 18:28:31 ubuntu kernel: ath10k_pci 0000:3b:00.0: kconfig debug 0 
debugfs 1 tracing 1 dfs 0 testmode 0
  Mar 04 18:28:31 ubuntu kernel: ath10k_pci 0000:3b:00.0: firmware ver 
WLAN.RM.2.0-00180-QCARMSWPZ-1 api 4 features wowlan,ignore-otp,no-4addr-pad 
crc32 75dee6c5
  Mar 04 18:28:31 ubuntu kernel: ath10k_pci 0000:3b:00.0: board_file api 2 
bmi_id N/A crc32 6fc88fe7
  Mar 04 18:28:34 ubuntu kernel: ath10k_pci 0000:3b:00.0: htt-ver 3.26 wmi-op 4 
htt-op 3 cal otp max-sta 32 raw 0 hwcrypto 1
  Mar 04 18:28:34 ubuntu kernel: ath: EEPROM regdomain: 0x6c
  Mar 04 18:28:34 ubuntu kernel: ath: EEPROM indicates we should expect a 
direct regpair map
  Mar 04 18:28:34 ubuntu kernel: ath: Country alpha2 being used: 00
  Mar 04 18:28:34 ubuntu kernel: ath: Regpair used: 0x6c
  Mar 04 18:28:34 ubuntu kernel: ath10k_pci 0000:3b:00.0 wlp59s0: renamed from 
wlan0

  iperf -c 10.10.10.1
  ------------------------------------------------------------
  Client connecting to 10.10.10.1, TCP port 5001
  TCP window size: 85.0 KByte (default)
  ------------------------------------------------------------
  [ 3] local 10.10.10.78 port 43786 connected with 10.10.10.1 port 5001
  [ ID] Interval Transfer Bandwidth
  [ 3] 0.0-10.0 sec 43.0 MBytes 36.0 Mbits/sec

  --------------------------------

  Booted on 4.4 General Availability kernel - the card did not work at
  all:

  Mar 04 18:51:54 ubuntu kernel: ath10k_pci 0000:3b:00.0: failed to enable 
dynamic BW: -11
  Mar 04 18:52:00 ubuntu kernel: ath10k_pci 0000:3b:00.0: could not suspend 
target (-11)

  --------------------------------

  The card's product name is Killer Wireless-AC 1535:
  http://www.killernetworking.com/products/killer-wireless-ac-1535

  The card vendor refers to linux-firmware 1.163:
  
http://www.killernetworking.com/driver-downloads/knowledge-base?view=topic&id=2

  ---------------------------------

  I tend to blame Atheros firmware so I've tried whatever kvalo has in
  the ath10k-firmware

  https://github.com/kvalo/ath10k-firmware

  sudo rmmod ath10k_pci ath10k_core ath mac80211 cfg80211

  # this gets rid of some of the kernel warnings about firmware but the
  performance remains low

  sudo cp ath10k-
  firmware/QCA6174/hw3.0/firmware-4.bin_WLAN.RM.2.0-00180-QCARMSWPZ-1
  /lib/firmware/ath10k/QCA6174/hw3.0/firmware-5.bin

  sudo cp ath10k-firmware/QCA6174/hw3.0/board-2.bin
  /lib/firmware/ath10k/QCA6174/hw3.0/board-2.bin

  sudo modprobe -a ath10k_pci ath10k_core ath mac80211 cfg80211

  ----------------------------------

  Tried both 5.0 GHz and 2.4 GHz modes - got similar results.

  ----------------------------------

  ProblemType: Bug
  DistroRelease: Ubuntu 17.04
  Package: linux-image-4.10.0-9-generic 4.10.0-9.11
  ProcVersionSignature: Ubuntu 4.10.0-9.11-generic 4.10.0
  Uname: Linux 4.10.0-9-generic x86_64
  NonfreeKernelModules: nvidia_uvm nvidia_drm nvidia_modeset nvidia
  ApportVersion: 2.20.4-0ubuntu2
  Architecture: amd64
  AudioDevicesInUse:
   USER        PID ACCESS COMMAND
   /dev/snd/controlC0:  dima       3458 F.... pulseaudio
   /dev/snd/controlC1:  dima       3458 F.... pulseaudio
  CurrentDesktop: Unity:Unity7
  Date: Sat Mar  4 22:03:00 2017
  InstallationDate: Installed on 2017-02-27 (5 days ago)
  InstallationMedia: Ubuntu 17.04 "Zesty Zapus" - Alpha amd64 (20170227)
  MachineType: Razer Blade
  ProcFB: 0 inteldrmfb
  ProcKernelCmdLine: BOOT_IMAGE=/vmlinuz-4.10.0-9-generic.efi.signed 
root=UUID=3f515c94-cd91-48b4-80f6-84ec24cb7b8f ro rootflags=subvol=@ quiet 
button.lid_init_state=open pcie_aspm=off
  RelatedPackageVersions:
   linux-restricted-modules-4.10.0-9-generic N/A
   linux-backports-modules-4.10.0-9-generic  N/A
   linux-firmware                            1.163
  SourcePackage: linux
  UpgradeStatus: No upgrade log present (probably fresh install)
  dmi.bios.date: 01/10/2017
  dmi.bios.vendor: Razer
  dmi.bios.version: 1.00
  dmi.board.name: Razer
  dmi.board.vendor: Razer
  dmi.chassis.type: 9
  dmi.chassis.vendor: Razer
  dmi.modalias: 
dmi:bvnRazer:bvr1.00:bd01/10/2017:svnRazer:pnBlade:pvr6.06:rvnRazer:rnRazer:rvr:cvnRazer:ct9:cvr:
  dmi.product.name: Blade
  dmi.product.version: 6.06
  dmi.sys.vendor: Razer

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1670041/+subscriptions

-- 
Mailing list: https://launchpad.net/~kernel-packages
Post to     : kernel-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kernel-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to