[BUG] ath12k: WCN7850 firmware stops uplink TX on EHT (CMD_REMOVE_AGED_FRAMES)
Enrico
vovkap97 at gmail.com
Thu Oct 15 04:59:41 PDT 2026
Hi,
On EHT, the WCN7850 firmware stops transmitting uplink data for 1-4
minutes while the association stays up. The driver keeps handing it
frames, the firmware releases them as CMD_REMOVE_AGED_FRAMES, and the
AP receives only the few frames the firmware reports as acked.
Downlink keeps working and the kernel logs nothing. I saw 11 stalls
in 57 hours on EHT and 0 in 24 hours after switching the AP's 5 GHz
radio to 802.11ax.
Setup:
- Client: Framework laptop, WCN785x [17cb:1107] rev 01,
subsystem 1eac:8000, ath12k_wifi7_pci
- Kernel: 7.2.7
- Firmware: WLAN.HMT.1.1.c7-00108-QCAHMTSWPL_V1.0_V2.0_SILICONZ_UPSTREAM-3
(fw_version 0x1103006c, latest in linux-firmware)
- AP: TP-Link EAP770(EU) v1.0 (IPQ9574), firmware 1.0.0, channel 36,
80 MHz, WPA/WPA2-PSK with TKIP group cipher
- Link: EHT-MCS 12, 80 MHz, 2 NSS, no MLO, signal -31 to -38 dBm
at the client
Client side, sampled every 2 s with bpftrace (ath12k_wifi7_mac_op_tx
calls, ar->dp.num_tx_pending, deltas of
ath12k_dp.device_stats.tqm_rel_reason):
During a stall the firmware acks only 7-15% of the frames enqueued
and num_tx_pending grows to 1616-4360 (the 9 stalls recorded with
bpftrace). Frames come back in batches as CMD_REMOVE_AGED_FRAMES and
some as CMD_REMOVE_MPDU. At the end the whole queue completes within
2 s.
Sums from stall start to recovery for the 4 stalls recorded with the
release counters (FRAME_ACKED includes the recovery burst):
stall start enqueued FRAME_ACKED AGED_FRAMES REMOVE_MPDU
10-13 22:19:13 20546 9916 10630 6
10-14 01:28:35 28114 8799 19219 94
10-14 03:16:57 27658 8811 17770 1075
10-14 12:14:35 43663 17485 23012 3146
mac80211 and cfg80211 tracepoints show no flush, queue stop, sta
state change, beacon loss or connection loss in any of the 9 stalls.
The only events inside the stalls are scans: 5 of the 9 contain one
or two back-to-back 8-9 s scans, 4 contain none.
AP side, per-station counters (apstats -s -m <client MAC>) every 2 s
during the stall from 2026-10-14 12:14:35 to 12:17:36:
time AP rx data AP tx data/ok client FRAME_ACKED/AGED
12:14:01 +48 +44/+44 87/0
12:15:05 +0 +19/+19 0/224
12:17:30 +0 +22/+22 0/993 at 12:17:31, pending 1990
12:17:36 +3273 +2399/+2398 15033/0 at 12:17:37, pending 1
12:17:38 +12498 +9273/+9268
>From 12:14:41 to 12:17:34, in 61 of 87 samples the AP receives no
data from the client. The
other 26 show 1-213 frames, and each matches a FRAME_ACKED batch on
the client in the same 2 s. The AP's TxSuccessDataPackets stays
within 1 of TxDataPackets in every sample.
802.11ax: the client links at HE-MCS 11, 2 NSS, 80 MHz. Over 24
hours CMD_REMOVE_AGED_FRAMES stayed at 0 out of 3.42M frames
enqueued.
I can send the full logs and the bpftrace script, and test firmware
builds or patches.
Thanks,
Vladimir
More information about the ath12k
mailing list