Iwlwifi - slow internet after a recent update

Hi all.

After a recent update, maybe 2-3 weeks ago, my wifi connection started to sometime slow to a crawl.

Sometimes it fixes itself after a while, other times reloading the driver helps (modprobe -r iwlmvm && modprobe -r iwlwifi && sleep 10 && modprobe iwlwifi). But sometimes, none of these things help.

I have tried various kernel module options but nothing seems to help.

Looking for any advice on diagnosing this.

I’m pretty sure it’s not the uplink, because when I run speedtest on my phone (while my PC is having issues) it shows 150 Mbit/s as expected.

There’s nothing suspicious in the output of dmesg or journalctl, the latter looks like this:

Jan 25 20:54:07 mrr rtkit-daemon[1575]: Supervising 14 threads of 7 processes of 1 users.
Jan 25 20:54:47 mrr NetworkManager[799]: <debug> [1706216087.1080] connectivity: (p2p-dev-wlp7s0,IPv4,999) start fake request (fake result)
Jan 25 20:54:47 mrr NetworkManager[799]: <debug> [1706216087.1081] connectivity: (p2p-dev-wlp7s0,IPv6,1000) start fake request (fake result)
Jan 25 20:54:47 mrr NetworkManager[799]: <debug> [1706216087.1081] connectivity: (p2p-dev-wlp7s0,IPv4,999) check completed: FAKE; fake result
Jan 25 20:54:47 mrr NetworkManager[799]: <debug> [1706216087.1081] connectivity: (p2p-dev-wlp7s0,IPv6,1000) check completed: FAKE; fake result
Jan 25 20:54:52 mrr NetworkManager[799]: <debug> [1706216092.0804] connectivity: (wlp7s0,IPv6,1001) start request to 'http://ping.manjaro.org/check_network_status.txt' (try resolving 'ping.manjaro.org' using system resolver)
Jan 25 20:54:52 mrr NetworkManager[799]: <debug> [1706216092.0944] connectivity: (wlp7s0,IPv6,1001) check completed: LIMITED; check failed: (7) Couldn't connect to server


Jan 25 20:55:10 mrr NetworkManager[799]: <debug> [1706216110.9418] ndisc-lndp[0x560e578b7210,"wlp7s0"]: processing libndp events
Jan 25 20:55:10 mrr NetworkManager[799]: <debug> [1706216110.9418] ndisc-lndp[0x560e578b7210,"wlp7s0"]: received router advertisement at timestamp 190065.991 seconds
Jan 25 20:55:10 mrr NetworkManager[799]: <debug> [1706216110.9418] ndisc[0x560e578b7210,"wlp7s0"]: router-data: next lifetime expiration will happen: in 360.000 seconds
Jan 25 20:55:10 mrr NetworkManager[799]: <debug> [1706216110.9419] ndisc[0x560e578b7210,"wlp7s0"]: neighbor discovery configuration changed [S]:
Jan 25 20:55:10 mrr NetworkManager[799]: <debug> [1706216110.9419] ndisc[0x560e578b7210,"wlp7s0"]:   dhcp-level otherconf
Jan 25 20:55:10 mrr NetworkManager[799]: <debug> [1706216110.9419] ndisc[0x560e578b7210,"wlp7s0"]:   hop limit      : 64
Jan 25 20:55:10 mrr NetworkManager[799]: <debug> [1706216110.9419] ndisc[0x560e578b7210,"wlp7s0"]:   dns_server 2a02:6b68:a816:0:ea9f:80ff:fe59:b3f9 exp 359.999
Jan 25 20:55:10 mrr NetworkManager[799]: <debug> [1706216110.9419] ndisc[0x560e578b7210,"wlp7s0"]: solicit: schedule sending next (slow) solicitation in about 297.711 seconds
Jan 25 20:55:36 mrr NetworkManager[799]: <debug> [1706216136.6035] device[8ea30bc851a8545b] (wlp7s0): wifi-scan: scanning-state: scanning
Jan 25 20:55:40 mrr NetworkManager[799]: <debug> [1706216140.0788] connectivity: (wlp7s0,IPv4,1002) start request to 'http://ping.manjaro.org/check_network_status.txt' (try resolving 'ping.manjaro.org' using system resolver)
Jan 25 20:55:40 mrr NetworkManager[799]: <debug> [1706216140.6474] connectivity: (wlp7s0,IPv4,1002) check completed: FULL; status header found
Jan 25 20:55:41 mrr NetworkManager[799]: <debug> [1706216141.6853] device[8ea30bc851a8545b] (wlp7s0): failed to match hidden AP 86:69:1A:3E:D7:B7
Jan 25 20:55:41 mrr NetworkManager[799]: <debug> [1706216141.6858] device[8ea30bc851a8545b] (wlp7s0): failed to match hidden AP EE:9F:80:59:B3:FA
Jan 25 20:55:41 mrr NetworkManager[799]: <debug> [1706216141.6859] device[8ea30bc851a8545b] (wlp7s0): wifi-scan: scanning-state: idle (notify last-scan)

System info

System:
  Kernel: 6.7.0-0-MANJARO arch: x86_64 bits: 64 compiler: gcc v: 13.2.1
    clocksource: tsc available: hpet,acpi_pm
    parameters: BOOT_IMAGE=/boot/vmlinuz-6.7-x86_64
    root=UUID=41842a12-6b2a-4b25-b1af-237f1d287cf0 rw quiet apparmor=1
    security=apparmor udev.log_priority=3
  Console: pty pts/2 DM: SDDM Distro: Manjaro Linux base: Arch Linux
Machine:
  Type: Desktop Mobo: Micro-Star model: B550M PRO-VDH WIFI (MS-7C95) v: 1.0
    serial: <filter> UEFI: American Megatrends LLC. v: 2.A0 date: 03/16/2022
CPU:
  Info: model: AMD Ryzen 5 5600X socket: AM4 bits: 64 type: MT MCP arch: Zen 3+
    gen: 4 level: v3 note: check built: 2022 process: TSMC n6 (7nm)
    family: 0x19 (25) model-id: 0x21 (33) stepping: 0 microcode: 0xA201016
  Topology: cpus: 1x cores: 6 tpc: 2 threads: 12 smt: enabled cache:
    L1: 384 KiB desc: d-6x32 KiB; i-6x32 KiB L2: 3 MiB desc: 6x512 KiB L3: 32 MiB
    desc: 1x32 MiB
  Speed (MHz): avg: 2200 min/max: 2200/4650 boost: enabled
    base/boost: 3700/4650 scaling: driver: acpi-cpufreq governor: schedutil
    volts: 1.1 V ext-clock: 100 MHz cores: 1: 2200 2: 2200 3: 2200 4: 2200
    5: 2200 6: 2200 7: 2200 8: 2200 9: 2200 10: 2200 11: 2200 12: 2200
    bogomips: 88843
  Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 svm
  Vulnerabilities:
  Type: gather_data_sampling status: Not affected
  Type: itlb_multihit status: Not affected
  Type: l1tf status: Not affected
  Type: mds status: Not affected
  Type: meltdown status: Not affected
  Type: mmio_stale_data status: Not affected
  Type: retbleed status: Not affected
  Type: spec_rstack_overflow status: Vulnerable: Safe RET, no microcode
  Type: spec_store_bypass mitigation: Speculative Store Bypass disabled via
    prctl
  Type: spectre_v1 mitigation: usercopy/swapgs barriers and __user pointer
    sanitization
  Type: spectre_v2 mitigation: Retpolines, IBPB: conditional, IBRS_FW,
    STIBP: always-on, RSB filling, PBRSB-eIBRS: Not affected
  Type: srbds status: Not affected
  Type: tsx_async_abort status: Not affected
Graphics:
  Device-1: NVIDIA GP108 [GeForce GT 1030] vendor: ASUSTeK driver: nvidia
    v: 545.29.06 alternate: nouveau,nvidia_drm non-free: 545.xx+ status: current
    (as of 2023-11; EOL~2026-12-xx) arch: Pascal code: GP10x process: TSMC 16nm
    built: 2016-2021 pcie: gen: 3 speed: 8 GT/s lanes: 4 bus-ID: 2b:00.0
    chip-ID: 10de:1d01 class-ID: 0300
  Device-2: Logitech Webcam C270 driver: snd-usb-audio,uvcvideo type: USB
    rev: 2.0 speed: 480 Mb/s lanes: 1 mode: 2.0 bus-ID: 3-2.1:24
    chip-ID: 046d:0825 class-ID: 0102 serial: <filter>
  Display: server: X.org v: 1.21.1.10 compositor: kwin_x11 driver: X:
    loaded: nvidia gpu: nvidia tty: 236x54
  Monitor-1: Unknown-1 size-res: N/A in console modes: 1920x1080
  API: EGL v: 1.5 hw: drv: nvidia platforms: device: 0 drv: nvidia device: 2
    drv: swrast gbm: drv: kms_swrast surfaceless: drv: nvidia
    inactive: wayland,x11,device-1
  API: OpenGL v: 4.6.0 compat-v: 4.5 vendor: mesa v: 23.3.3-manjaro1.1
    note: console (EGL sourced) renderer: llvmpipe (LLVM 16.0.6 256 bits),
    NVIDIA GeForce GT 1030/PCIe/SSE2
  API: Vulkan v: 1.3.274 layers: 1 device: 0 type: discrete-gpu
    name: NVIDIA GeForce GT 1030 driver: nvidia v: 545.29.06 device-ID: 10de:1d01
    surfaces: N/A
Audio:
  Device-1: NVIDIA GP108 High Definition Audio vendor: ASUSTeK
    driver: snd_hda_intel v: kernel pcie: gen: 3 speed: 8 GT/s lanes: 4
    bus-ID: 2b:00.1 chip-ID: 10de:0fb8 class-ID: 0403
  Device-2: AMD Starship/Matisse HD Audio vendor: Micro-Star MSI
    driver: snd_hda_intel v: kernel pcie: gen: 4 speed: 16 GT/s lanes: 16
    bus-ID: 2d:00.4 chip-ID: 1022:1487 class-ID: 0403
  Device-3: Logitech Webcam C270 driver: snd-usb-audio,uvcvideo type: USB
    rev: 2.0 speed: 480 Mb/s lanes: 1 mode: 2.0 bus-ID: 3-2.1:24
    chip-ID: 046d:0825 class-ID: 0102 serial: <filter>
  Device-4: GN Netcom Jabra EVOLVE 30 II driver: jabra,snd-usb-audio,usbhid
    type: USB rev: 2.0 speed: 12 Mb/s lanes: 1 mode: 1.1 bus-ID: 3-2.2:25
    chip-ID: 0b0e:0314 class-ID: 0300 serial: <filter>
  Device-5: Microsoft LifeChat LX-3000 Headset
    driver: hid-generic,snd-usb-audio,usbhid type: USB rev: 1.1 speed: 12 Mb/s
    lanes: 1 mode: 1.1 bus-ID: 3-4:2 chip-ID: 045e:070f class-ID: 0300
  API: ALSA v: k6.7.0-0-MANJARO status: kernel-api with: aoss
    type: oss-emulator tools: alsactl,alsamixer,amixer
  Server-1: JACK v: 1.9.22 status: off tools: N/A
  Server-2: PipeWire v: 1.0.0 status: n/a (root, process)
    with: pipewire-media-session status: active tools: pw-cli
  Server-3: PulseAudio v: 16.1 status: active (root, process) with:
    1: pulseaudio-alsa type: plugin 2: pulseaudio-jack type: module
    tools: pacat,pactl
Network:
  Device-1: Intel Wi-Fi 6 AX200 driver: iwlwifi v: kernel pcie: gen: 2
    speed: 5 GT/s lanes: 1 bus-ID: 07:00.0 chip-ID: 8086:2723 class-ID: 0280
  IF: wlp7s0 state: up mac: <filter>
  Device-2: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet
    vendor: Micro-Star MSI driver: r8168 v: 8.052.01-NAPI modules: r8169 pcie:
    gen: 1 speed: 2.5 GT/s lanes: 1 port: f000 bus-ID: 2a:00.0
    chip-ID: 10ec:8168 class-ID: 0200
  IF: enp42s0 state: down mac: <filter>
Bluetooth:
  Device-1: Microsoft Nano Transceiver v1.0 for Bluetooth
    driver: hid-generic,usbhid type: USB rev: 2.0 speed: 12 Mb/s lanes: 1
    mode: 1.1 bus-ID: 3-2.4:27 chip-ID: 045e:0745 class-ID: 0300
  Report: This feature requires one of these tools: hciconfig/bt-adapter
Drives:
  Local Storage: total: 2.73 TiB used: 2.32 TiB (85.2%)
  ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: Crucial model: CT1000P1SSD8
    size: 931.51 GiB block-size: physical: 512 B logical: 512 B speed: 31.6 Gb/s
    lanes: 4 tech: SSD serial: <filter> fw-rev: P3CR013 temp: 32.9 C
    scheme: GPT
  SMART: yes health: PASSED on: 308d 23h cycles: 2,264
    read-units: 53,965,229 [27.6 TB] written-units: 84,138,928 [43.0 TB]
  ID-2: /dev/sda maj-min: 8:0 vendor: Seagate model: ST2000DM008-2FR102
    family: BarraCuda 3.5 (SMR) size: 1.82 TiB block-size: physical: 4096 B
    logical: 512 B sata: 3.1 speed: 6.0 Gb/s tech: HDD rpm: 7200
    serial: <filter> fw-rev: 0001 temp: 31.0 C
  SMART: yes state: enabled health: PASSED on: 7235h+20m+20.878s cycles: 2263
    read: 4.69 TiB written: 6.08 TiB Pre-Fail: attribute: Spin_Retry_Count
    value: 100 worst: 100 threshold: 97
Partition:
  ID-1: / raw-size: 931.01 GiB size: 915.33 GiB (98.32%)
    used: 653.47 GiB (71.4%) fs: ext4 block-size: 4096 B dev: /dev/nvme0n1p3
    maj-min: 259:2
  ID-2: /boot/efi raw-size: 512 MiB size: 511 MiB (99.80%)
    used: 6.8 MiB (1.3%) fs: vfat block-size: 512 B dev: /dev/nvme0n1p1
    maj-min: 259:1
Swap:
  Alert: No swap data was found.
Sensors:
  System Temperatures: cpu: 40.8 C mobo: N/A
  Fan Speeds (rpm): fan-1: 1119 fan-2: 0 fan-3: 1034 fan-4: 1063 fan-5: 0
    fan-6: 0 fan-7: 0 fan-8: 0 fan-9: 0 fan-10: 0
Info:
  Processes: 383 Uptime: 2d 4h 56m wakeups: 5 Memory: total: 32 GiB
  available: 31.27 GiB used: 17.6 GiB (56.3%) Init: systemd v: 255
  default: graphical tool: systemctl Compilers: gcc: 13.2.1 clang: 16.0.6
  Packages: pm: pacman pkgs: 2014 libs: 509 tools: pamac,yay pm: appimage
  pkgs: 0 pm: flatpak pkgs: 0 Shell: Bash (su) v: 5.2.21 running-in: pty pts/2
  inxi: 3.3.31

Looks like you recently changed to the 6.7 kernel.

Does this happen with other kernels (6.6, 6.1) ?

Yeah, that was an attempt to fix it. I was on 6.5 initially, tried 6.6 and now 6.7. No result

Do you happen to know what was included in the update?

But not 6.1?
I ask because the other ones are not LTS.
6.1 is the last LTS before 6.6 … so to me it makes sense to try that.

Of course theres the general guide too
https://wiki.archlinux.org/title/Network_configuration/Wireless#iwlwifi

(you said you ‘tried options’ but we dont know what those were)

Not really. I didn’t even notice the exact date.

Actually, your comment above prompted me to look at what kernels I have installed. Turns out I have 6.1 so I switched to that. It’s been only a day but so far no issues.

To give an idea, my config looks like this:

options iwlwifi disable_11ax=true

options iwlwifi 11n_disable=8

options iwlwifi swcrypto=1
#options iwlwifi bt_coex_active=0 

# power_scheme:power management scheme: 1-active, 2-balanced, 3-low power, default: 2 (int)
options iwlmvm power_scheme=1
options iwlwifi power_save=0 amsdu_size=3

#options iwlwifi 11n_disable=1
#options iwlwifi swcrypto=0 bt_coex_active=0 power_save=0
#options iwlmvm power_scheme=1
#options iwlwifi d0i3_disable=1
#options iwlwifi uapsd_disable=1
#options iwlwifi lar_disable=1

#options iwlwifi 11n_disable=1 swcrypto=0 bt_coex_active=0 power_save=0
#options iwlmvm power_scheme=1 
#options iwlwifi d0i3_disable=1 
#options iwlwifi uapsd_disable=1 
#options iwlwifi lar_disable=1
#
#options iwlwifi 11n_disable=8 # enable antenna aggregation 
#options iwlmvm power_scheme=1 # disable power saving, default=2

#options iwlwifi swcrypto=0 
#options iwlwifi power_save=0
#options iwlmvm power_scheme=1 
#options iwlwifi uapsd_disable=1 

#options iwlwifi 11n_disable=1 swcrypto=1

I suspect some if not all of the options I have there may not be needed, but as long as it works (touch wood!) I am going to leave it.

That makes it hard indeed. Some library, or other software may be the ultimate culprit.

FWIW I tried to rollback the ucode file to the one I was using way before the issue had appeared but it didn’t help.

Do you use TimeShift by chance? That has been a life saver for me.

I think I used to when I was on Linux Mint before. Now I just back up my documents and other files, but not system stuff. Maybe I should look into that.

I use timeshift before every update just because of issues like this one. Sometimes I have to update one app or lib one at a time, which is a royal pain, but it does work for me. I use DejaDup for my home directory.

1 Like

For the record, and in case someone else has the same issue, switching to kernel 6.1 fixed it. Haven’t had any issues since.

This topic was automatically closed 36 hours after the last reply. New replies are no longer allowed.