openwrt / openwrt/mt76

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

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

Nobody has claimed this yet.

Dominant language
C
Stars
888
Forks
436
PR merge metrics
No merged PRs in 30d

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.

Contributor guide

No contributing guide indexed for this repository

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.

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.

Assessment

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.