Re: [PATCH 1/2] wifi: ath11k: implement custom wake_tx_queue with flow control
Zhi-Jun You <[email protected]> Tue, 14 Jul 2026 10:38:12 +0800
| Newsgroups | org.infradead.lists.ath11k,org.infradead.lists.ath12k,org.kernel.vger.linux-kernel,org.kernel.vger.linux-wireless |
|---|---|
| Message-ID | <CAHGaMk_FbjCShGw++0m9UT+sK+w23okwvx1vkqid6n9M=WScxQ@mail.gmail.com> |
On Mon, Jul 13, 2026 at 11:02 PM Jose Ignacio Tornos Martinez <[email protected]> wrote: > > Hi Zhi-Jun, > > Thank you for the review. > > > In wake_tx_queue: > > ring_id = txq->ac % ar->ab->hw_params.hal_params->num_tx_rings; > > > >In ath11k_dp_tx which is called by ath11k_mac_op_tx: > >ring_selector = ab->hw_params.hw_ops->get_ring_selector(skb); > > ti.ring_id = ring_selector % num_tx_rings; > > > > Are you sure ring_id will be the same? > You're right — txq->ac % num_tx_rings doesn't match > get_ring_selector(skb) % num_tx_rings on all platforms. > In v1 the ring identification was only correct for platforms where the ring > selector happens to coincide with the AC, but not for platforms. > > I will send a v2 trying to solve this globally for all the platforms. > > > Also mgmt frames use a different path. > Correct — management frames go through WMI, not the TCL data rings, so they > are not affected. The flow control applies to data frames, which are the > ones causing the problem since they use different TCL rings depending on the > platform's ring selector. > > Best regards, > Jose Ignacio > Hi Jose, While you are reworking it would you mind looking at the previous attempt? It tried to follow the behaviour in ath10k but lacks throttling mechanism. https://lore.kernel.org/linux-wireless/[email protected]/ Best regards, Zhi-Jun