MT7902 (mt7921e): 3-4x lower throughput on Linux than on Windows (same PC, same AP)

Open
#1,184 6 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
22/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Active
Tech stack
c, linux
Domain
networking

Research direction

The report concerns the mt7921e driver for the MT7902 card, but the payload names no source file or test. Start from the dmesg lines and the ASPM and power-save settings the reporter already tried, then look at how the mt7921e PCIe path handles this revision. Done would mean identifying the cause of the throughput gap, with a verified fix or a clear diagnosis, and reproducing it against the iperf3 numbers in the table.

Written by the indexing model from the issue text.

Description

Hardware
  • Card: 09:00.0 Network controller [0280]: MEDIATEK Corp. MT7902 802.11ax PCIe Wireless Network Adapter [Filogic 310] [14c3:7902]
  • Onboard on ASUS TUF GAMING B650M-E WIFI
  • dmesg:

mt7921e 0000:09:00.0: ASIC revision: 79020000
mt7921e 0000:09:00.0: HW/SW Version: 0x8a108a10, Build Time: 20251212032046a
mt7921e 0000:09:00.0: WM Firmware Version: ____000000, Build Time: 20251212032127

  • AP: AVM FRITZ!Box 5530 Fiber, 5 GHz, channel 36, 80 MHz, WiFi 6
Software
  • Arch Linux, kernel 7.2.14-arch1-1
  • linux-firmware-mediatek 20261019-1 (distro firmware, no out-of-tree driver)
Problem

Throughput is 3-4x lower on Linux than on Windows 11 on the same machine, same AP, same position, same iperf3 server (wired, directly connected to the router).

Direction Linux Windows 11
PC -> server ~47 Mbit/s ~215 Mbit/s
server -> PC (-R) ~46 Mbit/s ~151 Mbit/s

Link looks fine on Linux:

signal: -64 dBm
rx bitrate: 324.2 MBit/s 80MHz HE-MCS 6 HE-NSS 1 HE-GI 0 HE-DCM 0
tx bitrate: 480.3 MBit/s 80MHz HE-MCS 9 HE-NSS 1 HE-GI 0 HE-DCM 0

Already tried (no improvement)
  • Regulatory domain set to DE (was 00 before)
  • Power save off (iw dev wlp9s0 get power_save -> off, NetworkManager wifi.powersave = 2)
  • options mt7921e disable_aspm=1 (dmesg confirms "disabling ASPM L1")
  • Bluetooth blocked via rfkill: no change

Happy to provide more logs or test patches.

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.