[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