ath10k: improve wake_tx_queue ops performance

Kalle Valo kvalo at
Fri Sep 2 08:52:08 PDT 2016

Rajkumar Manoharan <rmanohar at> wrote:
> txqs_lock is interfering with wake_tx_queue submitting more frames.
> so queues don't get filled in and don't keep firmware/hardware busy
> enough. This change helps to reduce the txqs_lock contention and
> wake_tx_queue() blockage to being possible in txrx_unref().
> To reduce turn around time of wake_tx_queue ops and to maintain fairness
> among all txqs, the callback is updated to push first txq alone from
> pending list for every wake_tx_queue call. Remaining txqs will be
> processed later upon tx completion.
> Below improvements are observed in push-only mode and validated on
> IPQ4019 platform. With this change, in AP mode ~10Mbps increase is
> observed in downlink (AP -> STA) traffic and approx. 5-10% of CPU
> usage is reduced.
> Major improvement is observed in 1-hop Mesh mode topology in 11ACVHT80.
> Compared to Infra mode, CPU overhead is higher in Mesh mode due to path
> lookup and no fast-xmit support. So reducing spin lock contention is
> helping in Mesh.
>              TOT       +change
>            --------    --------
> TCP DL     545 Mbps    595 Mbps
> TCP UL     555 Mbps    585 Mbps
> Signed-off-by: Rajkumar Manoharan <rmanohar at>

Thanks, 1 patch applied to ath-next branch of ath.git:

83e164b7679d ath10k: improve wake_tx_queue ops performance

Sent by pwcli

More information about the ath10k mailing list