Commit 13aa2fb6 authored by Manikanta Pubbisetty's avatar Manikanta Pubbisetty Committed by Kalle Valo

wifi: ath11k: Enable threaded NAPI

Enable threaded NAPI on all ath11k targets. Unlike traditional
NAPI poll which runs in softirq context and on the core which
scheduled the NAPI, threaded NAPI makes use of kernel threads
which are under direct control of the scheduler and helps in
balancing the NAPI processing load across multiple CPUs thereby
improving throughput.

In the case of WCN6750, enabling threaded NAPI has improved
160 MHz RX throughput by nearly 400 Mbps. Similar gains can
be expected on other ath11k devices as well.

Tested-on: WCN6750 hw1.0 AHB WLAN.MSL.1.0.1-00887-QCAMSLSWPLZ-1
Signed-off-by: default avatarManikanta Pubbisetty <quic_mpubbise@quicinc.com>
Signed-off-by: default avatarKalle Valo <quic_kvalo@quicinc.com>
Link: https://lore.kernel.org/r/20220905071805.31625-2-quic_mpubbise@quicinc.com
parent 43e7c350
...@@ -359,6 +359,7 @@ static void ath11k_ahb_ext_irq_enable(struct ath11k_base *ab) ...@@ -359,6 +359,7 @@ static void ath11k_ahb_ext_irq_enable(struct ath11k_base *ab)
struct ath11k_ext_irq_grp *irq_grp = &ab->ext_irq_grp[i]; struct ath11k_ext_irq_grp *irq_grp = &ab->ext_irq_grp[i];
if (!irq_grp->napi_enabled) { if (!irq_grp->napi_enabled) {
dev_set_threaded(&irq_grp->napi_ndev, true);
napi_enable(&irq_grp->napi); napi_enable(&irq_grp->napi);
irq_grp->napi_enabled = true; irq_grp->napi_enabled = true;
} }
......
...@@ -459,6 +459,7 @@ void ath11k_pcic_ext_irq_enable(struct ath11k_base *ab) ...@@ -459,6 +459,7 @@ void ath11k_pcic_ext_irq_enable(struct ath11k_base *ab)
struct ath11k_ext_irq_grp *irq_grp = &ab->ext_irq_grp[i]; struct ath11k_ext_irq_grp *irq_grp = &ab->ext_irq_grp[i];
if (!irq_grp->napi_enabled) { if (!irq_grp->napi_enabled) {
dev_set_threaded(&irq_grp->napi_ndev, true);
napi_enable(&irq_grp->napi); napi_enable(&irq_grp->napi);
irq_grp->napi_enabled = true; irq_grp->napi_enabled = true;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment