Skip to content

ath11k: optimizations in data path

P Praneesh ath11k linux-wireless 2 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v3 Latest12 patches 3 repliesIn review
  2. v212 patches 4 repliesSuperseded

Changes in v3 from the cover letter

- Changed rcu_dereference to rcu_access_pointer in
[PATCH 07/12] ath11k: add branch predictors in process_rx [PATCH 11/12] ath11k: add branch predictors in dp_tx path. removed redundant check in
[PATCH 02/12] ath11k: allocate dst ring descriptors from cacheable memory.

Patches in v3 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/12ath11k: disable unused CE8 interrupts for ipq8074drivers/net/wireless/ath/ath11k/ce.c+1 -11 reply
2/12ath11k: allocate dst ring descriptors from cacheable memorydrivers/net/wireless/ath/ath11k/core.c drivers/net/wireless/ath/ath11k/dp.c drivers/net/wireless/ath/ath11k/dp.h +3 more+67 -70 replies
3/12ath11k: modify dp_rx desc access wrapper calls inlinedrivers/net/wireless/ath/ath11k/dp_rx.c+59 -551 reply
4/12ath11k: avoid additional access to ath11k_hal_srng_dst_num_freedrivers/net/wireless/ath/ath11k/dp_rx.c+7 -30 replies
5/12ath11k: avoid active pdev check for each msdudrivers/net/wireless/ath/ath11k/dp_rx.c+32 -340 replies
6/12ath11k: remove usage quota while processing rx packetsdrivers/net/wireless/ath/ath11k/dp_rx.c+3 -60 replies
7/12ath11k: add branch predictors in process_rxdrivers/net/wireless/ath/ath11k/dp_rx.c+9 -150 replies
8/12ath11k: allocate HAL_WBM2SW_RELEASE ring from cacheable memorydrivers/net/wireless/ath/ath11k/dp.c+1 -00 replies
9/12ath11k: remove mod operator in dst ring processingdrivers/net/wireless/ath/ath11k/hal.c+5 -20 replies
10/12ath11k: avoid while loop in ring selection of tx completion interruptdrivers/net/wireless/ath/ath11k/dp.c+4 -50 replies
11/12ath11k: add branch predictors in dp_tx pathdrivers/net/wireless/ath/ath11k/dp_tx.c drivers/net/wireless/ath/ath11k/mac.c+26 -300 replies
12/12ath11k: avoid unnecessary lock contention in tx_completion pathdrivers/net/wireless/ath/ath11k/dp_tx.c+14 -180 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v3 yet.

Read the v3 thread

Cover letter [PATCH v3 00/12] ath11k: optimizations in data path

This patchset covers optimizations in rx (first 7 patches) and tx (remaining 5 patches) data path.

Running UDP DL/UL traffic on IPQ8074 5G radio showed an average 5-10% improvement on a 4 core platform
---
v3:
- Changed rcu_dereference to rcu_access_pointer in
[PATCH 07/12] ath11k: add branch predictors in process_rx [PATCH 11/12] ath11k: add branch predictors in dp_tx path. removed redundant check in
[PATCH 02/12] ath11k: allocate dst ring descriptors from cacheable memory.
v2:
- Addressed internal developer reported segfault and avoid lookup twice by utilizing idr_remove (patch 12/12 and patch 2/12).
---
P Praneesh (12):
ath11k: disable unused CE8 interrupts for ipq8074
ath11k: allocate dst ring descriptors from cacheable memory
ath11k: modify dp_rx desc access wrapper calls inline
ath11k: avoid additional access to ath11k_hal_srng_dst_num_free
ath11k: avoid active pdev check for each msdu
ath11k: remove usage quota while processing rx packets
ath11k: add branch predictors in process_rx
ath11k: allocate HAL_WBM2SW_RELEASE ring from cacheable memory
ath11k: remove mod operator in dst ring processing
ath11k: avoid while loop in ring selection of tx completion interrupt
ath11k: add branch predictors in dp_tx path
ath11k: avoid unnecessary lock contention in tx_completion path

 drivers/net/wireless/ath/ath11k/ce.c    |   2 +-
 drivers/net/wireless/ath/ath11k/core.c  |   5 +
 drivers/net/wireless/ath/ath11k/dp.c    |  48 ++++++--
 drivers/net/wireless/ath/ath11k/dp.h    |   1 +
 drivers/net/wireless/ath/ath11k/dp_rx.c | 207 ++++++++++++++++----------------
 drivers/net/wireless/ath/ath11k/dp_tx.c |  86 ++++++-------
 drivers/net/wireless/ath/ath11k/hal.c   |  35 +++++-
 drivers/net/wireless/ath/ath11k/hal.h   |   1 +
 drivers/net/wireless/ath/ath11k/hw.h    |   1 +
 drivers/net/wireless/ath/ath11k/mac.c   |   2 +-
 10 files changed, 220 insertions(+), 168 deletions(-)
Signature · 1 line
2.7.4