[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#923947: firmware-iwlwifi: High transmit errors on Centrino Wireless-N 1000 when signal strength too high



Package: firmware-iwlwifi
Version: 20190114-1
Severity: normal

Dear Maintainer,

This seems a bizarre failure mode, but after lots of debugging it seems
to be what is happening.

I have a Thinkpad X220 with a Centrino Wireless-N 1000:

  03:00.0 Network controller: Intel Corporation Centrino Wireless-N 1000 [Condor Peak]

It works fine most of the time, but occasionally I get sudden spikes of
transmit errors (`iwconfig wlan0` shows `Tx excessive retries` going
very quickly), accompanied by long packet roundtrip times (can be
upwards of 20, 60, maybe even 200 seconds long), visible to ICMP `ping`.

I have determined this correlates very closely with periods of very high
signal strength. E.g. when I am sat at my desk right next to my access
point (a good strong Ubiquiti Ubifi), the signal strength gets as strong
as I've ever seen it, and suddenly transmit errors spike hugely and
network performance plumets. Usually at that point I would restart the
network card which would fix it for a while. One day I happened to
notice the correlation that it never seemed to occur when I was anywhere
else in the house, more than a couple of meters away from the AP and
sometimes with a wall inbetween.

This problem rarely happens when travelling to other places (e.g.
friends houses, most coffee shops, etc...) but I have seen it also from
time to time elsewhere.

I have applied packet dumping on both sides of the network during one of
these periods of breakage, and it seems entirely the laptop->AP
direction (at least at the IP / UDP layer) where the delays happen. Any
frames the AP wanted to send to the laptop arrive promptly, but often
the frames transmitted by the laptop towards the AP will arrive very
late.

So I tried an experiment. I moved the AP further away. This fixes it.

I don't yet have exact scientific numbers of recording the reported
signal strength during OK and broken periods, but I wonder if a possible
explanation could be that the firmware/hardware is performing some kind
of dynamic gain control, turning down its own transmit power if it sees
the incoming signal strength is very high. Perhaps it turns that down so
far that it doesn't have a lower bound and accidentally drops off way
too quietly, for the AP to hear it, whereupon a reset or moving the AP
away thus dropping the incoming strength, will fix it.


-- System Information:
Debian Release: buster/sid
  APT prefers testing
  APT policy: (990, 'testing'), (500, 'unstable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.19.0-2-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8), LANGUAGE=en_GB:en (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

firmware-iwlwifi depends on no packages.

firmware-iwlwifi recommends no packages.

Versions of packages firmware-iwlwifi suggests:
ii  initramfs-tools  0.133

-- no debconf information


Reply to: