Slow wifi on Thinkpad P1 G7 / Intel Corporation BE200

I’ve noticed the wifi on my Thinkpad P1 G7 is very slow. A scp to a machine on a local network does only ~250kB/s (and often stalls), which is pretty sad. Another (much older) laptop can do pretty much 300Mbps, which is what the 2.4GHz router can do.

Both laptops are running Qubes, but only the “new” P1 has this issue. And if I boot into Fedora 41, that’s fast too. So this seems to be some sort of hw compatibility issue, and dmesg in sys-net has another info supporting this:

[   35.140132] ------------[ cut here ]------------
[   35.140170] WARNING: CPU: 1 PID: 0 at drivers/net/wireless/intel/iwlwifi/pcie/tx.c:1844 iwl_pcie_get_sgt_tb_phys+0x4c/0x80 [iwlwifi]
[   35.140234] Modules linked in: nft_nat nft_flow_offload nf_flow_table_inet nf_flow_table snd_seq_dummy snd_hrtimer snd_seq snd_seq_device snd_timer snd soundcore nf_conntrack_netlink nft_reject_ipv6 nf_reject_ipv6 nft_reject_ipv4 nf_reject_ipv4 nft_reject nft_ct nft_masq nft_chain_nat nf_nat nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 qrtr iwlmvm mac80211 libarc4 joydev intel_rapl_msr intel_rapl_common intel_uncore_frequency_common intel_pmc_core intel_vsec pmt_telemetry pmt_class crct10dif_pclmul crc32_pclmul crc32c_intel polyval_clmulni polyval_generic ghash_clmulni_intel iwlwifi sha512_ssse3 nf_tables sha256_ssse3 sha1_ssse3 cfg80211 drm_vram_helper drm_ttm_helper ata_generic i2c_piix4 pcspkr ehci_pci ttm ehci_hcd rfkill i2c_smbus pata_acpi serio_raw xen_scsiback target_core_mod xen_netback xen_privcmd xen_gntdev xen_gntalloc xen_blkback xen_evtchn loop fuse nfnetlink overlay xen_blkfront
[   35.140541] CPU: 1 UID: 0 PID: 0 Comm: swapper/1 Not tainted 6.12.11-1.qubes.fc37.x86_64 #1
[   35.140564] Hardware name: Xen HVM domU, BIOS 4.17.5 02/16/2025
[   35.140582] RIP: 0010:iwl_pcie_get_sgt_tb_phys+0x4c/0x80 [iwlwifi]
[   35.140621] Code: 31 db 48 8b 3f 85 c0 74 21 89 da 03 5f 18 39 d5 72 05 44 39 eb 73 29 e8 e2 0d 40 e5 41 83 c6 01 48 89 c7 45 3b 74 24 08 72 df <0f> 0b 48 c7 c0 ff ff ff ff 5b 5d 41 5c 41 5d 41 5e c3 cc cc cc cc
[   35.140666] RSP: 0018:ffffac1e0010c6a0 EFLAGS: 00010246
[   35.140683] RAX: 0000000000000000 RBX: 0000000000001c3a RCX: 0000000000000007
[   35.140704] RDX: 0000000000001000 RSI: 0000000000000b68 RDI: 0000000000000000
[   35.140725] RBP: 0000000000000b68 R08: ffff987e49f450be R09: 0000000000000b68
[   35.140745] R10: 00000000000004e2 R11: 0000000000000040 R12: ffff987e49f45148
[   35.140765] R13: 000000000000104a R14: 0000000000000002 R15: 00000000000004e2
[   35.140786] FS:  0000000000000000(0000) GS:ffff987e6f900000(0000) knlGS:0000000000000000
[   35.140807] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[   35.140825] CR2: 00005f5275638d00 CR3: 000000000bcdc001 CR4: 0000000000770ef0
[   35.140848] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[   35.140867] DR3: 0000000000000000 DR6: 00000000ffff07f0 DR7: 0000000000000400
[   35.140887] PKRU: 55555554
[   35.140896] Call Trace:
[   35.140906]  <IRQ>
[   35.140917]  ? __warn+0x89/0x130
[   35.140935]  ? iwl_pcie_get_sgt_tb_phys+0x4c/0x80 [iwlwifi]
[   35.140974]  ? report_bug+0x164/0x190
[   35.140991]  ? handle_bug+0x58/0x90
[   35.141006]  ? exc_invalid_op+0x17/0x70
[   35.141020]  ? asm_exc_invalid_op+0x1a/0x20
[   35.141037]  ? iwl_pcie_get_sgt_tb_phys+0x4c/0x80 [iwlwifi]
[   35.141073]  iwl_txq_gen2_build_amsdu.constprop.0+0x2f5/0x3c0 [iwlwifi]
[   35.141120]  iwl_txq_gen2_build_tx_amsdu+0x12d/0x1c0 [iwlwifi]
[   35.141159]  iwl_txq_gen2_build_tfd+0x131/0x150 [iwlwifi]
[   35.141200]  iwl_txq_gen2_tx+0x135/0x4b0 [iwlwifi]
[   35.141234]  iwl_mvm_tx_mpdu+0x206/0x810 [iwlmvm]
[   35.141292]  iwl_mvm_tx_skb_sta+0x181/0x2f0 [iwlmvm]
[   35.141334]  iwl_mvm_tx_skb+0x17/0x40 [iwlmvm]
[   35.141370]  iwl_mvm_mac_itxq_xmit+0x92/0x100 [iwlmvm]
[   35.141407]  ieee80211_queue_skb+0x249/0x340 [mac80211]
[   35.141502]  __ieee80211_xmit_fast+0x238/0x3a0 [mac80211]
[   35.141622]  ieee80211_xmit_fast+0xfb/0x1b0 [mac80211]
[   35.141702]  __ieee80211_subif_start_xmit+0x12f/0x2c0 [mac80211]
[   35.141783]  ieee80211_subif_start_xmit+0x47/0x1e0 [mac80211]
[   35.141863]  dev_hard_start_xmit+0x61/0x1d0
[   35.141878]  __dev_queue_xmit+0x18a/0x810
[   35.141891]  ? nf_hook_slow+0x42/0xf0
[   35.141906]  ip_finish_output2+0x1f5/0x500
[   35.141920]  __netif_receive_skb_one_core+0x89/0xa0
[   35.141936]  netif_receive_skb+0x115/0x160
[   35.141948]  ? skb_checksum_setup+0x7b/0x120
[   35.141965]  xenvif_tx_submit+0x2ac/0x450 [xen_netback]
[   35.141983]  xenvif_poll+0x2b/0x80 [xen_netback]
[   35.142001]  __napi_poll+0x28/0x1c0
[   35.142014]  net_rx_action+0x3e5/0x8f0
[   35.142029]  handle_softirqs+0xf2/0x340
[   35.142042]  ? sched_clock_cpu+0xf/0x1b0
[   35.142056]  __irq_exit_rcu+0x9b/0xc0
[   35.142069]  sysvec_xen_hvm_callback+0x71/0x90
[   35.142085]  </IRQ>
[   35.142093]  <TASK>
[   35.142101]  asm_sysvec_xen_hvm_callback+0x1a/0x20
[   35.142116] RIP: 0010:pv_native_safe_halt+0xf/0x20
[   35.142132] Code: 22 d7 c3 cc cc cc cc 0f 1f 40 00 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 f3 0f 1e fa eb 07 0f 00 2d 43 d7 28 00 fb f4 <c3> cc cc cc cc 66 66 2e 0f 1f 84 00 00 00 00 00 90 90 90 90 90 90
[   35.142174] RSP: 0018:ffffac1e000cfe08 EFLAGS: 00000246
[   35.142190] RAX: 0000000000004000 RBX: ffff987e4131ac64 RCX: 00000079fa20d2d2
[   35.142209] RDX: 0000000000000001 RSI: ffff987e4131ac00 RDI: 0000000000000001
[   35.142228] RBP: ffff987e4131ac64 R08: 00000000000de41c R09: 0000000000000002
[   35.142247] R10: 0000000000000000 R11: 0000000000000002 R12: 0000000000000001
[   35.340613] R13: ffffffffa730d5c0 R14: ffff987e6f900000 R15: 0000000000000000
[   35.340623]  acpi_safe_halt+0x14/0x20
[   35.340630]  acpi_idle_do_entry+0x2f/0x50
[   35.340636]  acpi_idle_enter+0xb2/0x150
[   35.340642]  cpuidle_enter_state+0x8e/0x680
[   35.340648]  cpuidle_enter+0x2d/0x40
[   35.340657]  cpuidle_idle_call+0xf5/0x160
[   35.340665]  do_idle+0x7b/0xd0
[   35.340671]  cpu_startup_entry+0x29/0x30
[   35.340677]  start_secondary+0x12d/0x160
[   35.340685]  common_startup_64+0x13e/0x141
[   35.340694]  </TASK>
[   35.340697] ---[ end trace 0000000000000000 ]---

The “plain” Fedora 41 doesn’t have this issue, despite running an older kernel (6.11, while sys-net is using 6.12).

The closest thing I found is this:

https://lore.kernel.org/all/2a03f0839c1387b5448b85bcd399d03b0d8cd32a.camel@intel.com/T/

Although the call trace is somewhat similar, but not exactly the same. But the general symptoms are pretty close.

Any ideas what to do about this?

I would start by trying a different kernel (than 6.12) in sys-net.

1 Like

Oh, wow! I switched to 6.6 (the last <6.12 kernel offered for sys-net), and that just fixed the issue.

I should have thought about this, but I was trapped in thinking “new kernels are better for new hardware”. I wonder which kernel version broke this.

1 Like