Bug 1295964

Summary: iwlwifi with intel 7260 gives very poor (roughly 1/3rd or less) throughput compared to the standard Intel 7260 driver running on 64-bit Windows 10
Product: [Fedora] Fedora Reporter: Gerard Fernandes <gerard.fernandes>
Component: kernelAssignee: Kernel Maintainer List <kernel-maint>
Status: CLOSED INSUFFICIENT_DATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 24CC: ctatman, fedora-kernel-wireless-iwl, gansalmon, gerard.fernandes, itamar, jforbes, jonathan, kernel-maint, madhu.chinakonda, mchehab, z1pp, zhangchaowang
Target Milestone: ---Flags: jforbes: needinfo?
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-04-28 17:21:36 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
modinfo output for iwlwifi 7260 none

Description Gerard Fernandes 2016-01-05 22:51:22 UTC
Description of problem: The Fedora kernel driver for iwlwifi for the Intel 7260 2x2 AC card gives very poor throughput compared to the standard Intel 7260 driver running on the same machine, on Windows 10 (dual boot setup, with Fedora 23 and Windows 10).


Version-Release number of selected component (if applicable):
[gerry@ajax ~]$ uname -a
4.2.8-300.fc23.x86_64 #1 SMP Tue Dec 15 16:49:06 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux


How reproducible: Always


Steps to Reproduce:
1. Start up machine (dell 1749 laptop), boot into Fedora
2. Log in, run "iw dev wlp8s0 link", note the link rate shows something around 585Mbps.
3. Transfer a large (3 GB) file to local server connected to router by wired gigabit ethernet, observe a transfer rate of 9MBps average.
4. Restart machine, boot into Windows 10
5. Log in, open the Wireless network settings panel - note the link rate is something like 866 Mbps
6. Transfer the same large (3GB) file to the same local server connected to router by wired gigabit ethernet, observe a transfer rate of about 40 MBps average.

Actual results: Poor transfer rates over local network, as can be seen above.


Expected results: Ideally, I'd expect better than Windows transfer rates. But I'll settle for equal rates :)


Additional info:
gerry@ajax ~]$ dmesg |grep iwl
[    8.959109] iwlwifi 0000:08:00.0: Direct firmware load for iwlwifi-7260-15.ucode failed with error -2
[    8.959140] iwlwifi 0000:08:00.0: Direct firmware load for iwlwifi-7260-14.ucode failed with error -2
[    8.964441] iwlwifi 0000:08:00.0: loaded firmware version 25.30.13.0 op_mode iwlmvm
[    9.069190] iwlwifi 0000:08:00.0: Detected Intel(R) Dual Band Wireless AC 7260, REV=0x144
[    9.069280] iwlwifi 0000:08:00.0: L1 Enabled - LTR Disabled
[    9.069577] iwlwifi 0000:08:00.0: L1 Enabled - LTR Disabled
[   10.937332] ieee80211 phy0: Selected rate control algorithm 'iwl-mvm-rs'
[   11.059271] iwlwifi 0000:08:00.0 wlp8s0: renamed from wlan0
[   17.015591] iwlwifi 0000:08:00.0: L1 Enabled - LTR Disabled
[   17.016044] iwlwifi 0000:08:00.0: L1 Enabled - LTR Disabled
[   17.229816] iwlwifi 0000:08:00.0: L1 Enabled - LTR Disabled
[   17.230263] iwlwifi 0000:08:00.0: L1 Enabled - LTR Disabled
========================================================================
[gerry@ajax ~]$ iw dev wlp8s0 link
Connected to f4:f2:6d:2d:20:33 (on wlp8s0)
	SSID: gnaf
	freq: 5180
	RX: 5570489 bytes (8079 packets)
	TX: 1474759 bytes (6466 packets)
	signal: -58 dBm
	tx bitrate: 6.0 MBit/s

	bss flags:	short-slot-time
	dtim period:	2
	beacon int:	100

Comment 1 Gerard Fernandes 2016-01-05 22:58:01 UTC
Router is an Archer C7 (AC 1750, 3x3 on both, AC 5GHz, and G/N 2.4 GHz) running OpenWRT Chaos Calmer.

I'd initially thought it was something to do with OpenWRT and the atheros drivers on the Archer C7.

But the dual-boot Windows-10 test firmly points the finger at the Fedora kernel driver. All other parameters in the test remain unchanged (router, server, file transferred) - the only change is the OS. I simply boot into the OS (first Fedora 23, then Windows-10), check the link rate, and run the test. No other process is running at the time, except for the file copy process (there may well be a few system processes running in the background, but they shouldn't interfere with the test).

Comment 2 Justin M. Forbes 2016-01-06 18:01:52 UTC
Is Windows 10 also connecting as 5GHz with these speeds?  It might be that 5GHz is problematic for your specific location, and 2.4GHz will give more bandwidth.

You can also try changing the BSSID in your network settings to make NM connect to 2.4 and see if that improves anything.

I am not ruling out the driver here, just trying to make sure that is actually the culprit.

Comment 3 Gerard Fernandes 2016-01-06 22:09:28 UTC
Yes - the tests have been done with everything else exactly the same. This is wireless AC, therefore it is 5GHz for both OS's.

2.4 GHz is ok, but I'm really not interested in optimising 2.4GHz. I use 2.4 GHz exclusively for mobile devices and tablets, and the speeds I get there are sufficient for that purpose.

The laptop uses 5 GHz exclusively.

All things being equal (hardware, wifi AC connection, router, server, SMB protocol for file transfer, the file itself), I'd expect the Linux driver to match or exceed the Windows driver speed.

The router is in the same room as the laptop for these tests - about 8 feet away in a straight-ish line.

I upgraded my laptop WiFi adaptor to the 7260 almost exclusively for AC speeds. I recently got the Archer C7 so that I could run an AC network to get high speeds between my laptop and server in my local network.

I was more than slightly disappointed when my timings on Fedora were so low compared to Windows.

Comment 4 Justin M. Forbes 2016-01-07 06:43:16 UTC
What version of iwl7260-firmware do you have installed?

Comment 5 Gerard Fernandes 2016-01-07 22:02:21 UTC
Apologies for the delay in getting back.

The version I'm running is:
---------------------------------------------------
[gerry@ajax ~]$ rpm -qil iwl7260-firmware
Name        : iwl7260-firmware
Epoch       : 1
Version     : 25.30.13.0
Release     : 60.fc23
Architecture: noarch
Install Date: Wed 16 Dec 2015 17:55:20 GMT
Group       : System Environment/Kernel
Size        : 18733274
License     : Redistributable, no modification permitted
Signature   : RSA/SHA256, Tue 15 Dec 2015 09:23:05 GMT, Key ID 32474cf834ec9cba
Source RPM  : linux-firmware-20151214-60.gitbbe4917c.fc23.src.rpm
Build Date  : Mon 14 Dec 2015 14:24:15 GMT
Build Host  : buildhw-09-nfs.phx2.fedoraproject.org
Relocations : (not relocatable)
Packager    : Fedora Project
Vendor      : Fedora Project
URL         : http://www.kernel.org/
Summary     : Firmware for Intel(R) Wireless WiFi Link 7260 Series Adapters
Description :
This package contains the firmware required by the Intel wireless drivers
for Linux.  Usage of the firmware is subject to the terms and conditions
contained inside the provided LICENSE file. Please read it carefully.
/usr/lib/firmware/iwlwifi-7260-10.ucode
/usr/lib/firmware/iwlwifi-7260-12.ucode
/usr/lib/firmware/iwlwifi-7260-13.ucode
/usr/lib/firmware/iwlwifi-7260-16.ucode
/usr/lib/firmware/iwlwifi-7260-7.ucode
/usr/lib/firmware/iwlwifi-7260-8.ucode
/usr/lib/firmware/iwlwifi-7260-9.ucode
/usr/lib/firmware/iwlwifi-7265-10.ucode
/usr/lib/firmware/iwlwifi-7265-12.ucode
/usr/lib/firmware/iwlwifi-7265-13.ucode
/usr/lib/firmware/iwlwifi-7265-16.ucode
/usr/lib/firmware/iwlwifi-7265-8.ucode
/usr/lib/firmware/iwlwifi-7265-9.ucode
/usr/lib/firmware/iwlwifi-7265D-10.ucode
/usr/lib/firmware/iwlwifi-7265D-12.ucode
/usr/lib/firmware/iwlwifi-7265D-13.ucode
/usr/lib/firmware/iwlwifi-7265D-16.ucode
/usr/lib/firmware/iwlwifi-8000C-13.ucode
/usr/lib/firmware/iwlwifi-8000C-16.ucode
/usr/share/doc/iwl7260-firmware
/usr/share/doc/iwl7260-firmware/LICENCE.iwlwifi_firmware
/usr/share/doc/iwl7260-firmware/WHENCE
---------------------------------------------------

Comment 6 Gerard Fernandes 2016-01-07 22:05:39 UTC
dmesg output for iwlwifi:
-------------------------
[gerry@ajax ~]$ dmesg |grep iwlwif
[    9.003489] iwlwifi 0000:08:00.0: Direct firmware load for iwlwifi-7260-15.ucode failed with error -2
[    9.003519] iwlwifi 0000:08:00.0: Direct firmware load for iwlwifi-7260-14.ucode failed with error -2
[    9.008650] iwlwifi 0000:08:00.0: loaded firmware version 25.30.13.0 op_mode iwlmvm
[    9.139237] iwlwifi 0000:08:00.0: Detected Intel(R) Dual Band Wireless AC 7260, REV=0x144
[    9.139334] iwlwifi 0000:08:00.0: L1 Enabled - LTR Disabled
[    9.139632] iwlwifi 0000:08:00.0: L1 Enabled - LTR Disabled
[    9.381348] iwlwifi 0000:08:00.0 wlp8s0: renamed from wlan0
[   15.946585] iwlwifi 0000:08:00.0: L1 Enabled - LTR Disabled
[   15.947012] iwlwifi 0000:08:00.0: L1 Enabled - LTR Disabled
[   16.151143] iwlwifi 0000:08:00.0: L1 Enabled - LTR Disabled
[   16.151592] iwlwifi 0000:08:00.0: L1 Enabled - LTR Disabled

Comment 7 Gerard Fernandes 2016-01-07 22:07:38 UTC
Installed firmware files:
-------------------------
[gerry@ajax ~]$ ls -ltr /lib/firmware/|grep 7260
-rw-r--r--. 1 root root  680508 Dec 14 14:24 iwlwifi-7260-9.ucode
-rw-r--r--. 1 root root  679780 Dec 14 14:24 iwlwifi-7260-8.ucode
-rw-r--r--. 1 root root  683236 Dec 14 14:24 iwlwifi-7260-7.ucode
-rw-r--r--. 1 root root 1049284 Dec 14 14:24 iwlwifi-7260-16.ucode
-rw-r--r--. 1 root root  786920 Dec 14 14:24 iwlwifi-7260-13.ucode
-rw-r--r--. 1 root root  782300 Dec 14 14:24 iwlwifi-7260-12.ucode
-rw-r--r--. 1 root root  672352 Dec 14 14:24 iwlwifi-7260-10.ucode

Comment 8 Gerard Fernandes 2016-01-07 22:08:52 UTC
Created attachment 1112623 [details]
modinfo output for iwlwifi 7260

Attached the modinfo output for iwlwifi 7260.

Comment 9 Gerard Fernandes 2016-01-07 22:17:40 UTC
From the dmesg output, you can see that it tries to load the firmware files for v15, fails, then tries v14, fails and finally succeeds with v13.

However, from the listing of /lib/firmware, you can see that the highest firmware file version is 16, followed by 13.

Why is it not trying to load 16? Is that the underlying problem here? Why are 14 and 15 missing? Or if those versions aren't expected, why does the driver try to load those firmware files in order (15, then 14, then 13)?

Just trying to understand whats going on here. :)

Comment 10 Johannes Zipperer 2016-01-08 17:43:11 UTC
Hello,

I have the same wifi card (Intel 7260) connecting to a 2,4 GHz network.
Mainboard: GA-F2A88XN-WIFI
OS: Fedora 23

I had the same issues when installing Fedora 23: low throughput, resulting in websites not getting loaded.

Turning off the power saving feature helped in my case 
sudo iw wlp2s0 set power_save off

I replaced the file /usr/lib/firmware/iwlwifi-7260-13.ucode as well from this website: https://wireless.wiki.kernel.org/en/users/drivers/iwlwifi

Replacing the file /usr/lib/firmware/iwlwifi-7260-16.ucode caused Fedora to have trouble booting, so be careful.

I can't test 5 GHz but hopefully my experiences help anyway.

Comment 11 Justin M. Forbes 2016-01-08 17:55:25 UTC
The supported firmware revision is set by the driver. So kernel-4.3 will use 16 and actually prefers 17. For the 7260, 17 is basically a feature complete fw now, it shouldn't bump anymore unless there is a real bug fix.  Since 17 has not been tagged into linux-firmware upstream, you might grab https://git.kernel.org/cgit/linux/kernel/git/iwlwifi/linux-firmware.git/plain/iwlwifi-7260-17.ucode and test it with the 4.3 kernel in F23 updates-testing.

Comment 12 Gerard Fernandes 2016-01-10 23:05:05 UTC
(In reply to Johannes Zipperer from comment #10)
> Hello,
> 
> I have the same wifi card (Intel 7260) connecting to a 2,4 GHz network.
> Mainboard: GA-F2A88XN-WIFI
> OS: Fedora 23
> 
> I had the same issues when installing Fedora 23: low throughput, resulting
> in websites not getting loaded.
> 
> Turning off the power saving feature helped in my case 
> sudo iw wlp2s0 set power_save off
> 
> I replaced the file /usr/lib/firmware/iwlwifi-7260-13.ucode as well from
> this website: https://wireless.wiki.kernel.org/en/users/drivers/iwlwifi
> 
> Replacing the file /usr/lib/firmware/iwlwifi-7260-16.ucode caused Fedora to
> have trouble booting, so be careful.
> 
> I can't test 5 GHz but hopefully my experiences help anyway.

Changing the power save to off has absolutely no effect on the throughput in AC 5GHz.

Comment 13 Gerard Fernandes 2016-01-10 23:06:42 UTC
(In reply to Justin M. Forbes from comment #11)
> The supported firmware revision is set by the driver. So kernel-4.3 will use
> 16 and actually prefers 17. For the 7260, 17 is basically a feature complete
> fw now, it shouldn't bump anymore unless there is a real bug fix.  Since 17
> has not been tagged into linux-firmware upstream, you might grab
> https://git.kernel.org/cgit/linux/kernel/git/iwlwifi/linux-firmware.git/
> plain/iwlwifi-7260-17.ucode and test it with the 4.3 kernel in F23
> updates-testing.

Thanks for that. Could you tell me how I can install the 4.3 kernel from F23 updates-testing?

Comment 14 Justin M. Forbes 2016-01-11 15:03:29 UTC
Actually, it is being pushed to updates proper with the next sync.  Should be available via dnf update sometime today.  In the future though, you can call dnf with "--enablerepo=updates-testing" to temporarily enable the repository for that dnf run, or you can run "dnf config-manager --set-enabled updates-testing" to enable it permanently.

Comment 15 Gerard Fernandes 2016-01-11 22:55:15 UTC
Thanks Justin.

So I upgraded to Kernel-4.3 from updates testing anyway, and put in the v17 firmware. I can now see the link rate has gone up to full supported hardware speed: 866Mbps. However, the transfer rates remain the same: about 9.5 MBps.

So the 3.5 GB file takes roughly over 5 minutes to download in Fedora. In Windows, I get an average speed of 40 MBps, and the same 3.5 GB file downloads in about 2 minutes. So still about 1/3 the speed I get on the same hardware on Windows 10.

Comment 16 Gerard Fernandes 2016-01-11 22:56:20 UTC
dmwsg and firmware details, as well as link speed:
===================================================
[gerry@ajax ~]$ dmesg|grep iwlwifi
[   11.117173] iwlwifi 0000:08:00.0: api_index larger than supported by driver
[   11.117715] iwlwifi 0000:08:00.0: loaded firmware version 17.265642.0 op_mode iwlmvm
[   11.229340] iwlwifi 0000:08:00.0: Detected Intel(R) Dual Band Wireless AC 7260, REV=0x144
[   11.229441] iwlwifi 0000:08:00.0: L1 Enabled - LTR Disabled
[   11.229767] iwlwifi 0000:08:00.0: L1 Enabled - LTR Disabled
[   11.459751] iwlwifi 0000:08:00.0 wlp8s0: renamed from wlan0
[   22.398673] iwlwifi 0000:08:00.0: L1 Enabled - LTR Disabled
[   22.399112] iwlwifi 0000:08:00.0: L1 Enabled - LTR Disabled
[   22.622667] iwlwifi 0000:08:00.0: L1 Enabled - LTR Disabled
[   22.623102] iwlwifi 0000:08:00.0: L1 Enabled - LTR Disabled
[gerry@ajax ~]$ ls -ltr /lib/firmware/|grep 7260
-rw-r--r--. 1 root root  680508 Dec 14 14:24 iwlwifi-7260-9.ucode
-rw-r--r--. 1 root root  679780 Dec 14 14:24 iwlwifi-7260-8.ucode
-rw-r--r--. 1 root root  683236 Dec 14 14:24 iwlwifi-7260-7.ucode
-rw-r--r--. 1 root root 1049284 Dec 14 14:24 iwlwifi-7260-16.ucode
-rw-r--r--. 1 root root  786920 Dec 14 14:24 iwlwifi-7260-13.ucode
-rw-r--r--. 1 root root  782300 Dec 14 14:24 iwlwifi-7260-12.ucode
-rw-r--r--. 1 root root  672352 Dec 14 14:24 iwlwifi-7260-10.ucode
-rw-r--r--. 1 root root 1049340 Jan 11 22:46 iwlwifi-7260-17.ucode
[gerry@ajax ~]$ iw dev wlp8s0 link
Connected to f4:f2:6d:2d:20:33 (on wlp8s0)
	SSID: gnaf
	freq: 5180
	RX: 96103 bytes (397 packets)
	TX: 74056 bytes (447 packets)
	signal: -57 dBm
	tx bitrate: 866.7 MBit/s VHT-MCS 9 80MHz short GI VHT-NSS 2

	bss flags:	short-slot-time
	dtim period:	2
	beacon int:	100

Comment 17 Gerard Fernandes 2016-01-11 22:56:52 UTC
kernel version:
[gerry@ajax ~]$ uname -a
Linux ajax.home.lan 4.3.3-300.fc23.x86_64 #1 SMP Tue Jan 5 23:31:01 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

Comment 18 Gerard Fernandes 2016-01-26 21:16:16 UTC
Any updates on this? Any details I can provide?

The Windows driver still gives a straight 30(min)-40(max) MBytes/s whereas the Linux kernel driver in Fedora 23 struggles to give even 9 MBytes/s.

This is on 64-bit kernel 4.3.3-301, and iwlwifi firmware version 17.265642.0.

Comment 19 Ricky 2016-06-27 00:22:41 UTC
I had intel 7260 ac card and experienced the similar differences between F23 and Win10.
I downloaded 17 firmware. It was still slow and had poor link quality.

After upgrade to F24, 17 firmware performed than before. The connection drops from time to time. So I removed it and used 16 from up-stream iwl-7260 fimrware package. It seems to solve connection drop. But it still slow in Linux. 

I tried to look for a place in Intel to report this.

Comment 20 Laura Abbott 2016-09-23 19:49:39 UTC
*********** MASS BUG UPDATE **************
 
We apologize for the inconvenience.  There is a large number of bugs to go through and several of them have gone stale.  Due to this, we are doing a mass bug update across all of the Fedora 23 kernel bugs.
 
Fedora 23 has now been rebased to 4.7.4-100.fc23.  Please test this kernel update (or newer) and let us know if you issue has been resolved or if it is still present with the newer kernel.
 
If you have moved on to Fedora 24 or 25, and are still experiencing this issue, please change the version to Fedora 24 or 25.
 
If you experience different issues, please open a new bug report for those.

Comment 21 Gerard Fernandes 2016-10-26 09:10:38 UTC
Throughput is slightly better at around 10-11MBps - but still significantly lower than on Windows 10 (35-40MBps) with the Intel drivers.

Problem still very much alive and kicking.

Comment 22 Gerard Fernandes 2016-10-26 09:15:15 UTC
@Ricky - fwiw, I've also reported this to Intel. You have to email the kernel developers working on the iwlwifi drivers directly to them and to an Intel mailing list.

However, it didn't get very far.

They required me to run the driver after compiling with debug flags etc, which I've been unable to do.

I fail to see why no one at Intel can reproduce this rather obvious problem.

All it requires is a dual-boot laptop with the 7260 AC card, with the latest Fedora, all updates applied, and Windows-10 with the Intel drivers, and to do a transfer over SMB with a 4-5GB file.

Comment 23 Stanislaw Gruszka 2016-10-26 10:01:13 UTC
(In reply to Gerard Fernandes from comment #22)
> They required me to run the driver after compiling with debug flags etc,
> which I've been unable to do.

If you install kernel-debug the all needed iwlwifi debug facilities should be already compiled in that kernel.

Comment 24 Justin M. Forbes 2017-04-11 14:58:56 UTC
*********** MASS BUG UPDATE **************

We apologize for the inconvenience.  There are a large number of bugs to go through and several of them have gone stale.  Due to this, we are doing a mass bug update across all of the Fedora 24 kernel bugs.

Fedora 25 has now been rebased to 4.10.9-100.fc24.  Please test this kernel update (or newer) and let us know if you issue has been resolved or if it is still present with the newer kernel.

If you have moved on to Fedora 26, and are still experiencing this issue, please change the version to Fedora 26.

If you experience different issues, please open a new bug report for those.

Comment 25 Justin M. Forbes 2017-04-28 17:21:36 UTC
*********** MASS BUG UPDATE **************
This bug is being closed with INSUFFICIENT_DATA as there has not been a response in 2 weeks. If you are still experiencing this issue, please reopen and attach the 
relevant data from the latest kernel you are running and any data that might have been requested previously.