[PATCH v7 0/4] ath11k/ath12k: implement TX flow control
Jose Ignacio Tornos Martinez
jtornosm at redhat.com
Tue Oct 20 09:08:30 PDT 2026
Hi Julius,
Thanks for the review and the Tested-by.
> One thing on patch 3, from reading the code:
>
>> + if (num_free == 0) {
>> + spin_unlock_bh(&tx_ring->wake_tx_lock);
>> + break;
>> + }
>
> When this breaks, the frames stay in the txq and nothing restarts it
> until mac80211 queues the next frame for that txq. A sender waiting for
> ACKs then stalls until its retransmit timeout. With AQL I measured this
> in v4: one download in three stalled, max RTT 347 ms. A restart from
> ath11k_dp_tx_completion_handler() fixes it.
Good point. The break when the ring is full is intentional, it keeps
the frames safe in the txq instead of the current -ENOMEM drop. Your
TX completion restart (patch 6) would make the recovery from that
stall faster, which is a nice improvement on top. Another reason for
both series to land.
Since we agree, I am going to split ath11k and ath12k into separate
series to try to unblock both.
Thanks
Best regards
José Ignacio
More information about the ath12k
mailing list