mt7925: severe latency + ~21% TX-retries under moderate 5 GHz contention (other radios fine on same AP)

Open
#1,108 3 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
35/100
Issue type
Bug
Clarity
Needs clarification
Activity status
Quiet
Tech stack
c, linux

Research direction

Start by reproducing the contention case with the provided ping, station dump, and survey dump commands, confirming roughly 15–20% OBSS airtime and comparing MT7925 with the other radios. Then trace the mt7925e driver and firmware rate-control or channel-access behavior implicated by the retry measurements. Done means isolating the driver or firmware cause and documenting a validated fix or next diagnostic.

Written by the indexing model from the issue text.

Description

TL;DR — On a ~17% busy 5 GHz channel, MT7925 latency collapses (high TX-retries, 0% loss, stays on-channel), while MT7615 / MT7921 / iPhone on the same AP, channel, and spot are all fine. Same card is flawless on an uncongested channel — the fault is contention-triggered.

⚠️ Not push-button reproducible — it needs real co-channel OBSS airtime (~15–20% here). Instead of a repro script, this is characterized by a controlled same-air comparison + eliminations below.

Environment
  • MT7925 (Filogic 360) [14c3:7925], mt7925e, AMD Ryzen 7 8840HS
  • NixOS, NetworkManager + wpa_supplicant backend
  • Kernel 6.18.38 and 7.1.3 (both affected); firmware WM 20260605
  • Regdomain CN → 5 GHz ch149 / 80 MHz, signal −35…−43 dBm
Controlled comparison — same AP / ch149 / same spot

Channel busy ≈ 17.5% (measured from an adjacent MT7615 iw … survey dump, mostly RX of other BSSes).

client ping → gateway tx-retries
MT7615 (mt76, WiFi5) 3.5 ms, 0 spikes very low
MT7921 / iPhone <20 ms, stable —
MT7925 ~91 ms avg, 54% >15 ms, max ~450 ms ~21% (failed ≈0, loss 0%)

Same MT7925 on a separate low-traffic 5 GHz channel: normal, no spikes.

Ruled out
  • Host/CPU: ping 127.0.0.1 = 0.4 ms during the spikes
  • Roaming/scan: 0 scan/ROC events in iw event over a 54%-spike window
  • Deep-sleep PM: radio awake ~30/35 s, low_power_wakes +0
  • The air: 3 other radios fine on the same channel
To attempt reproduction

Needs ~15–20% OBSS airtime on the operating channel. Rough recipe: a 2nd AP on the same channel + a client pushing steady traffic (iperf/bulk) to reach ~15–20% busy, then from the MT7925 STA:

ping -i 0.02 -c 400 <gateway>                              # latency + spikes
iw dev wlo1 station dump | grep -E "tx packets|tx retries" # retry rate (diff before/after)
iw dev <mt76-on-same-ch> survey dump | grep -A5 'in use'   # confirm channel busy % (2 snapshots)

Suspected: firmware rate-control / channel-access — 21% retries at ~17% busy with −35 dBm is disproportionate; other radios ignore this load.

Dominant language
C
Stars
895
Forks
461
PR merge metrics
No merged PRs in 30d

Getting set up

This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from openwrt/mt76

All issues in openwrt/mt76

Similar issues

More C issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.