zhengyushi(ZHENGYU SHI) <zhengyushi@xxxxxxxxxxxxxxxxxx> wrote: > > I’m seeing severe ping spikes (1?90 ms) when using the onboard Realtek RTL8851BE Wi-Fi (Device b851, > rtw89_8851be) on Arch Linux. Switching to a USB-tethered phone (same AP) completely eliminates the jitter > (<5 ms). The behavior is completely reproducible. I suspect an issue in the rtw89 driver’s power-management > or PCIe handling. > > I tried > - Disabling power management via injecting ASPM/L1/L1SS and CLKREQ via rtw89_pci.disable_clkreq=y > rtw89_pci.disable_aspm_l1=y rtw89_pci.disable_aspm_l1ss=y > - Verified no firmware‐driven roaming or reassociation in logs > > Device Info: > % lspci | awk '/[Nn]et/ {print $1}' | xargs -i% lspci -ks % > 07:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8211/8411 PCI Express Gigabit > Ethernet Controller (rev 15) > DeviceName: Realtek RTL8125BG LAN > Subsystem: ASUSTeK Computer Inc. Onboard RTL8111H Ethernet > Kernel driver in use: r8169 > Kernel modules: r8169 > 08:00.0 Network controller: Realtek Semiconductor Co., Ltd. Device b851 > Subsystem: AzureWave Device 6110 > Kernel driver in use: rtw89_8851be > Kernel modules: rtw89_8851be > > % uname -r > 6.14.4-arch1-1 > > % mtr 8.8.8.8 > Apotheosis (192.168.0.42) → 8.8.8.8 (8.8.8.8) 2025-05-05T21:15:47+0800 > Host Loss% Snt Last Avg Best Wrst StDev > 1. _gateway 0.3% 330 0.7 1.6 0.3 82.4 5.8 > 2. 100.66.0.3 1.2% 330 2.0 3.1 1.2 109.9 9.5 > 3. chj-dsl9.vqbn.com 0.3% 330 2.0 3.3 1.3 95.3 8.5 > 4. 132.147.112.109 0.0% 329 2.6 4.0 1.7 102.8 9.4 > 5. 132.147.112.194 24.0% 329 4.7 7.9 3.4 127.1 16.0 > 6. 209.85.255.97 0.0% 329 2.5 3.5 1.6 131.1 8.6 > 7. 142.251.241.1 0.0% 329 2.4 3.4 2.0 109.7 7.3 > 8. dns.google 0.0% 329 2.8 3.0 1.5 105.9 7.2 > This is my test in office where at least 50 AP are existing: (Actually I don't expect the latency is always low in this environment.) 64 bytes from 192.168.0.1: icmp_seq=1 ttl=64 time=3.40 ms 64 bytes from 192.168.0.1: icmp_seq=2 ttl=64 time=24.0 ms 64 bytes from 192.168.0.1: icmp_seq=3 ttl=64 time=4.32 ms 64 bytes from 192.168.0.1: icmp_seq=4 ttl=64 time=4.36 ms 64 bytes from 192.168.0.1: icmp_seq=5 ttl=64 time=6.30 ms 64 bytes from 192.168.0.1: icmp_seq=6 ttl=64 time=7.15 ms 64 bytes from 192.168.0.1: icmp_seq=7 ttl=64 time=2.48 ms 64 bytes from 192.168.0.1: icmp_seq=8 ttl=64 time=2.54 ms 64 bytes from 192.168.0.1: icmp_seq=9 ttl=64 time=2.04 ms 64 bytes from 192.168.0.1: icmp_seq=10 ttl=64 time=122 ms This is another test in my house where AP is much less: 64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=2.86 ms 64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=1.33 ms 64 bytes from 192.168.1.1: icmp_seq=3 ttl=64 time=1.31 ms 64 bytes from 192.168.1.1: icmp_seq=4 ttl=64 time=3.54 ms 64 bytes from 192.168.1.1: icmp_seq=5 ttl=64 time=1.50 ms 64 bytes from 192.168.1.1: icmp_seq=6 ttl=64 time=4.03 ms 64 bytes from 192.168.1.1: icmp_seq=7 ttl=64 time=3.55 ms 64 bytes from 192.168.1.1: icmp_seq=8 ttl=64 time=2.86 ms 64 bytes from 192.168.1.1: icmp_seq=9 ttl=64 time=1.27 ms 64 bytes from 192.168.1.1: icmp_seq=10 ttl=64 time=3.49 ms I'm using firmware v0.29.41.3. Please check which version you are using. Turning off power_save by 'sudo iw wlan0 set power_save off' can improve a little bit. You can also try it. The factors of high latency might be caused by noisy environment, so RTL8851BE is hard to transmit out or collision. Using a sniffer with ping test would be easier to diagnose the reason. Method to use another RTL8851BE or other WiFi devices as a sniffer: sudo iw dev wlan0 interface add mon0 type monitor sudo wireshark Then select proper channel via wireshark GUI to capture packets from/to target RTL8851BE.