I've built a 4.13-rc1 (5771a8c08880) kernel and have done some laptop (4.13, bbr) <-> AP <-> laptop (4.4 cubic) tests. Not sure about the AP and there is a fair amount of wireless devices on the network I was connected to. Most of them have Cubic congestion control but I am not sure how fair they shared bandwidth.
There are also 2 tests with one of the public iperf3 servers from this list https://iperf.fr/iperf-servers.php which give about the same perf results. I think the network I am now has ~60 Mbit/s cap or rate limit per client. Cwnd seems to mostly cap at 14.1 KBytes for the first set of tests. I will run some more tests on a faster and less congested network in 2 days with bbr. Until then, what I see is that I can get ~ 4 times more data through with UDP. uname -r 4.13.0-rc1 ➜ linux git:(5771a8c08880) ✗ cat /proc/sys/net/ipv4/tcp_congestion_control bbr ➜ linux git:(5771a8c08880) ✗ lsmod | grep bbr tcp_bbr 20480 45 iperf3 -c 10.155.13.90 Connecting to host 10.155.13.90, port 5201 [ 4] local 10.155.9.186 port 37980 connected to 10.155.13.90 port 5201 [ ID] Interval Transfer Bandwidth Retr Cwnd [ 4] 0.00-1.00 sec 991 KBytes 8.12 Mbits/sec 1 11.3 KBytes [ 4] 1.00-2.00 sec 938 KBytes 7.68 Mbits/sec 0 14.1 KBytes [ 4] 2.00-3.00 sec 923 KBytes 7.56 Mbits/sec 0 11.3 KBytes [ 4] 3.00-4.00 sec 650 KBytes 5.33 Mbits/sec 0 11.3 KBytes [ 4] 4.00-5.00 sec 1.02 MBytes 8.56 Mbits/sec 0 11.3 KBytes [ 4] 5.00-6.00 sec 863 KBytes 7.07 Mbits/sec 0 14.1 KBytes [ 4] 6.00-7.00 sec 1.20 MBytes 10.1 Mbits/sec 0 14.1 KBytes [ 4] 7.00-8.00 sec 826 KBytes 6.77 Mbits/sec 0 14.1 KBytes [ 4] 8.00-9.00 sec 1.09 MBytes 9.12 Mbits/sec 0 11.3 KBytes [ 4] 9.00-10.00 sec 658 KBytes 5.39 Mbits/sec 0 14.1 KBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bandwidth Retr [ 4] 0.00-10.00 sec 9.02 MBytes 7.57 Mbits/sec 1 sender [ 4] 0.00-10.00 sec 8.92 MBytes 7.48 Mbits/sec receiver iperf Done. iperf3 -u -b 1000M -c 10.155.13.90 Connecting to host 10.155.13.90, port 5201 [ 4] local 10.155.9.186 port 44086 connected to 10.155.13.90 port 5201 [ ID] Interval Transfer Bandwidth Total Datagrams [ 4] 0.00-1.00 sec 3.63 MBytes 30.5 Mbits/sec 465 [ 4] 1.00-2.00 sec 4.03 MBytes 33.8 Mbits/sec 516 [ 4] 2.00-3.00 sec 4.45 MBytes 37.3 Mbits/sec 569 [ 4] 3.00-4.00 sec 4.68 MBytes 39.3 Mbits/sec 599 [ 4] 4.00-5.00 sec 5.48 MBytes 45.9 Mbits/sec 701 [ 4] 5.00-6.00 sec 5.52 MBytes 46.3 Mbits/sec 707 [ 4] 6.00-7.00 sec 5.25 MBytes 44.0 Mbits/sec 672 [ 4] 7.00-8.00 sec 4.57 MBytes 38.3 Mbits/sec 585 [ 4] 8.00-9.00 sec 4.64 MBytes 38.9 Mbits/sec 594 [ 4] 9.00-10.00 sec 5.50 MBytes 46.1 Mbits/sec 704 - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams [ 4] 0.00-10.00 sec 47.8 MBytes 40.1 Mbits/sec 1.650 ms 26/6111 (0.43%) [ 4] Sent 6111 datagrams iperf Done. iperf3 -c 10.155.13.90 Connecting to host 10.155.13.90, port 5201 [ 4] local 10.155.9.186 port 37988 connected to 10.155.13.90 port 5201 [ ID] Interval Transfer Bandwidth Retr Cwnd [ 4] 0.00-1.00 sec 1.18 MBytes 9.89 Mbits/sec 0 11.3 KBytes [ 4] 1.00-2.00 sec 1.10 MBytes 9.27 Mbits/sec 0 14.1 KBytes [ 4] 2.00-3.00 sec 1.16 MBytes 9.70 Mbits/sec 0 11.3 KBytes [ 4] 3.00-4.00 sec 1.06 MBytes 8.91 Mbits/sec 0 14.1 KBytes [ 4] 4.00-5.00 sec 1.05 MBytes 8.79 Mbits/sec 0 11.3 KBytes [ 4] 5.00-6.00 sec 1.07 MBytes 8.96 Mbits/sec 0 14.1 KBytes [ 4] 6.00-7.00 sec 922 KBytes 7.55 Mbits/sec 0 14.1 KBytes [ 4] 7.00-8.00 sec 1.09 MBytes 9.17 Mbits/sec 0 14.1 KBytes [ 4] 8.00-9.00 sec 1.12 MBytes 9.41 Mbits/sec 0 14.1 KBytes [ 4] 9.00-10.00 sec 987 KBytes 8.09 Mbits/sec 0 14.1 KBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bandwidth Retr [ 4] 0.00-10.00 sec 10.7 MBytes 8.97 Mbits/sec 0 sender [ 4] 0.00-10.00 sec 10.6 MBytes 8.91 Mbits/sec receiver iperf Done. --- ➜ linux git:(5771a8c08880) ✗ iperf3 -c iperf.volia.net Connecting to host iperf.volia.net, port 5201 [ 4] local 10.155.9.186 port 40964 connected to 82.144.193.18 port 5201 [ ID] Interval Transfer Bandwidth Retr Cwnd [ 4] 0.00-1.00 sec 1.32 MBytes 11.0 Mbits/sec 0 341 KBytes [ 4] 1.00-2.00 sec 1.64 MBytes 13.7 Mbits/sec 0 416 KBytes [ 4] 2.00-3.00 sec 1.32 MBytes 11.1 Mbits/sec 0 441 KBytes [ 4] 3.00-4.00 sec 1.32 MBytes 11.0 Mbits/sec 0 421 KBytes [ 4] 4.00-5.00 sec 1.27 MBytes 10.7 Mbits/sec 0 427 KBytes [ 4] 5.00-6.00 sec 1.29 MBytes 10.8 Mbits/sec 0 413 KBytes [ 4] 6.00-7.00 sec 1.31 MBytes 11.0 Mbits/sec 0 424 KBytes [ 4] 7.00-8.00 sec 1.25 MBytes 10.4 Mbits/sec 0 421 KBytes [ 4] 8.00-9.00 sec 1.25 MBytes 10.5 Mbits/sec 0 427 KBytes [ 4] 9.00-10.00 sec 1.32 MBytes 11.1 Mbits/sec 0 424 KBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bandwidth Retr [ 4] 0.00-10.00 sec 13.3 MBytes 11.1 Mbits/sec 0 sender [ 4] 0.00-10.00 sec 12.1 MBytes 10.2 Mbits/sec receiver iperf Done. ➜ linux git:(5771a8c08880) ✗ iperf3 -u -b 1000M -c iperf.volia.net Connecting to host iperf.volia.net, port 5201 [ 4] local 10.155.9.186 port 41183 connected to 82.144.193.18 port 5201 [ ID] Interval Transfer Bandwidth Total Datagrams [ 4] 0.00-1.00 sec 4.97 MBytes 41.7 Mbits/sec 636 [ 4] 1.00-2.00 sec 6.14 MBytes 51.5 Mbits/sec 786 [ 4] 2.00-3.00 sec 5.84 MBytes 49.0 Mbits/sec 747 [ 4] 3.00-4.00 sec 5.25 MBytes 44.0 Mbits/sec 672 [ 4] 4.00-5.00 sec 5.49 MBytes 46.1 Mbits/sec 703 [ 4] 5.00-6.00 sec 4.76 MBytes 39.9 Mbits/sec 609 [ 4] 6.00-7.00 sec 6.55 MBytes 54.9 Mbits/sec 838 [ 4] 7.00-8.00 sec 6.67 MBytes 56.0 Mbits/sec 854 [ 4] 8.00-9.00 sec 6.51 MBytes 54.6 Mbits/sec 833 [ 4] 9.00-10.00 sec 6.55 MBytes 54.9 Mbits/sec 838 - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams [ 4] 0.00-10.00 sec 58.7 MBytes 49.3 Mbits/sec 1.480 ms 0/7515 (0%) [ 4] Sent 7515 datagrams iperf Done. -- 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