After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 772722 - Wireless connection is super-slow on brcmsmac
Wireless connection is super-slow on brcmsmac
Status: RESOLVED NOTABUG
Product: NetworkManager
Classification: Platform
Component: Wi-Fi
1.4.x
Other Linux
: Normal normal
: ---
Assigned To: NetworkManager maintainer(s)
NetworkManager maintainer(s)
Depends on:
Blocks:
 
 
Reported: 2016-10-10 22:55 UTC by Martin Kotelnik
Modified: 2017-01-20 16:49 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Martin Kotelnik 2016-10-10 22:55:02 UTC
Since version 1.4 forward, wireless connection is limited to 40KiB/s on my BCM4313 (brcmsmac driver).

Last known working (over 1.5MiB/s download speed) NM version was 1.2.5-dev.

Downgrading kernel didn't help but downgrading NM to version 1.2.4 or 1.2.5 is fixing the issue. So I believe the new NM is communicating differently with wifi driver which causes the massive slowdown.

What I tried with no impact on the issue:
- setting powersave=0 in wireless profile
- running "iwconfig <device> power off", but it says that operation is not supported
- When looking to logs (both dmesg and systemd journal) while connecting to router I can see no differences between the tried versions.
- blacklisting module b43

Tested on: HP Probook 6550b, wifi BCM4313 (brcmsmac driver), Arch Linux (kernel 4.7.6), NM (various versions: 1.4.0, 1.4.1, 1.4.2)

On another laptop with Intel wifi is everything fine. Also ethernet is ok on both laptops.

I'll gladly provide more info/data on demand:).
Comment 1 Thomas Haller 2016-10-11 06:54:59 UTC
might be related to NetworkManager now changing the MAC address by default.


You disable that, by configure that via:


[device]
wifi.scan-rand-mac-address=0
[connection]
802-11-wireless.cloned-mac-address=permanent

followed by `killall -SIG NetworkManager` and trying re-activating the connection (two times, to be sure).


Does that help?
Comment 2 Martin Kotelnik 2016-10-13 00:04:06 UTC
Thanks a lot for quick answer! Unfortunately it didn't help. But with more testing performed, I can see the problem is probably partially related to wpa_supplicant.

From my latest testing, I can say this:
- all testing performed with wifi connection type WPA2 Personal
- wpa_supplicant 2.5 + NM <= 1.2.5 -> everything fine
- wpa_supplicant 2.5 + NM >= 1.4   -> wifi slow
- wpa_supplicant 2.6 + NM <= 1.2.5 -> wifi slow right after boot, everything fine after NM restart
- wpa_supplicant 2.6 + NM >= 1.4   -> wifi slow

I'll do more testing, check wpa_supplicant logs, ... and report back.
Comment 3 Jiri Klimes 2017-01-19 12:18:57 UTC
Any progress or change here?
Comment 4 Martin Kotelnik 2017-01-19 22:14:07 UTC
Unfortunately not much. Latest wpa_supplicant and kernel now works fine with NM version less then 1.4. I still didn't figured it out.

Today I tried also the latest NM git version. It is possibly the combination of brcmsmac wifi driver vs. NM 1.4+ what's causing the slowness. There is a thread about it on arch forums:

https://bbs.archlinux.org/viewtopic.php?pid=1685087

Changing driver implementation to the broadcom-wl apparently solves the problem. 

So we can probably mark this issue as kinda resolved. Just one more thought: could there be some updated/new kernel API that is called by NM since version 1.4.0? That would probably narrow down the problematic area.
Comment 5 Thomas Haller 2017-01-20 16:49:59 UTC
Not that I can think of.

one thing that changed is that NetworkManager now might eagerly try to reset a different MAC address. That could result in driver issues.
But that is configurable, and you said disabling that, didn't help (which rules that out).
You would easily see if NM does it with turning on debug-logging and grepping for "set-hw-addr:".


I was thinking maybe it's related to powersave. If you have powesave enabled, I would disable it and see if it helps.


Closing for lack of ideas. Please reopen if something new shows up. Thanks!