* [PATCH ath-next 0/2] wifi: ath12k: Configure RXDMA buffer ring size per memory profile
@ 2026-10-07 9:23 Aaradhana Sahu
2026-10-07 9:23 ` [PATCH ath-next 1/2] wifi: ath12k: Make RXDMA buffer ring size configurable " Aaradhana Sahu
2026-10-07 9:23 ` [PATCH ath-next 2/2] wifi: ath12k: Increase RXDMA buffer ring size for default " Aaradhana Sahu
0 siblings, 2 replies; 3+ messages in thread
From: Aaradhana Sahu @ 2026-10-07 9:23 UTC (permalink / raw)
To: Jeff Johnson
Cc: linux-wireless, ath12k, linux-kernel, Aaradhana Sahu,
Pavankumar Nandeshwar
The RXDMA buffer ring size is currently hardcoded and shared across all
memory profiles. This makes it difficult to tune the ring size based on
the requirements of individual profiles.
This series first makes the RXDMA buffer ring size configurable through
the memory profile configuration and then increases the ring size for
the default profile to improve RX traffic handling.
Signed-off-by: Aaradhana Sahu <aaradhana.sahu@oss.qualcomm.com>
---
Aaradhana Sahu (1):
wifi: ath12k: Make RXDMA buffer ring size configurable per memory profile
Pavankumar Nandeshwar (1):
wifi: ath12k: Increase RXDMA buffer ring size for default memory profile
drivers/net/wireless/ath/ath12k/core.c | 2 ++
drivers/net/wireless/ath/ath12k/dp.h | 8 +++++++-
drivers/net/wireless/ath/ath12k/dp_rx.c | 2 +-
3 files changed, 10 insertions(+), 2 deletions(-)
---
base-commit: a90ebf2176db07c5d91e0a62e15ded1fd50710a0
change-id: 20261007-mpp_ws-a041d5cfac9a
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH ath-next 1/2] wifi: ath12k: Make RXDMA buffer ring size configurable per memory profile
2026-10-07 9:23 [PATCH ath-next 0/2] wifi: ath12k: Configure RXDMA buffer ring size per memory profile Aaradhana Sahu
@ 2026-10-07 9:23 ` Aaradhana Sahu
2026-10-07 9:23 ` [PATCH ath-next 2/2] wifi: ath12k: Increase RXDMA buffer ring size for default " Aaradhana Sahu
1 sibling, 0 replies; 3+ messages in thread
From: Aaradhana Sahu @ 2026-10-07 9:23 UTC (permalink / raw)
To: Jeff Johnson; +Cc: linux-wireless, ath12k, linux-kernel, Aaradhana Sahu
Currently, the RXDMA buffer ring size is hardcoded to 4096 and shared
across all memory profiles. This prevents individual profiles from tuning
the ring size based on their memory and performance requirements.
Add the RXDMA buffer ring size to the memory profile configuration and
implement ath12k_dp_rxdma_buf_ring_size() static inline function to
access the configured value. This allows different memory profiles to
select an appropriate ring size based on available system resources.
The function follows the pattern established in the previous patch for
other DP profile parameters, taking struct ath12k_dp_profile_params
pointer as argument.
Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.6-01243-QCAHKSWPL_SILICONZ-1
Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.1.c7-00108-QCAHMTSWPL_V1.0_V2.0_SILICONZ_UPSTREAM-3
Tested-on: QCC2072 hw1.0 PCI WLAN.COL.1.0.c2-00074-QCACOLSWPL_V1_TO_SILICONZ-1
Signed-off-by: Aaradhana Sahu <aaradhana.sahu@oss.qualcomm.com>
---
drivers/net/wireless/ath/ath12k/core.c | 2 ++
drivers/net/wireless/ath/ath12k/dp.h | 8 +++++++-
drivers/net/wireless/ath/ath12k/dp_rx.c | 2 +-
3 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/drivers/net/wireless/ath/ath12k/core.c b/drivers/net/wireless/ath/ath12k/core.c
index e527b59ecba5..764e646d0090 100644
--- a/drivers/net/wireless/ath/ath12k/core.c
+++ b/drivers/net/wireless/ath/ath12k/core.c
@@ -54,6 +54,7 @@ ath12k_mem_profile_based_param ath12k_mem_profile_based_param[] = {
.num_pool_tx_desc = 32768,
.rx_desc_count = 12288,
.rx_release_ring_size = 16384,
+ .rxdma_buf_ring_size = 4096,
},
},
[ATH12K_QMI_MEMORY_MODE_LOW_512_M] = {
@@ -68,6 +69,7 @@ ath12k_mem_profile_based_param ath12k_mem_profile_based_param[] = {
.num_pool_tx_desc = 16384,
.rx_desc_count = 6144,
.rx_release_ring_size = 8192,
+ .rxdma_buf_ring_size = 4096,
},
},
};
diff --git a/drivers/net/wireless/ath/ath12k/dp.h b/drivers/net/wireless/ath/ath12k/dp.h
index c53eac20b989..108e27dd5797 100644
--- a/drivers/net/wireless/ath/ath12k/dp.h
+++ b/drivers/net/wireless/ath/ath12k/dp.h
@@ -31,6 +31,7 @@ struct ath12k_dp_profile_params {
u32 num_pool_tx_desc;
u32 rx_desc_count;
u32 rx_release_ring_size;
+ u32 rxdma_buf_ring_size;
};
#define DP_MON_PURGE_TIMEOUT_MS 100
@@ -210,7 +211,6 @@ struct ath12k_pdev_dp {
#define DP_REO_EXCEPTION_RING_SIZE 128
#define DP_REO_CMD_RING_SIZE 256
#define DP_REO_STATUS_RING_SIZE 2048
-#define DP_RXDMA_BUF_RING_SIZE 4096
#define DP_RX_MAC_BUF_RING_SIZE 4096
#define DP_RXDMA_REFILL_RING_SIZE 2048
#define DP_RXDMA_ERR_DST_RING_SIZE 1024
@@ -730,6 +730,12 @@ ath12k_dp_rx_release_ring_size(const struct ath12k_dp_profile_params *p)
return p->rx_release_ring_size;
}
+static inline u32
+ath12k_dp_rxdma_buf_ring_size(const struct ath12k_dp_profile_params *p)
+{
+ return p->rxdma_buf_ring_size;
+}
+
void ath12k_dp_vdev_tx_attach(struct ath12k *ar, struct ath12k_link_vif *arvif);
void ath12k_dp_partner_cc_init(struct ath12k_base *ab);
int ath12k_dp_pdev_alloc(struct ath12k_base *ab);
diff --git a/drivers/net/wireless/ath/ath12k/dp_rx.c b/drivers/net/wireless/ath/ath12k/dp_rx.c
index cfaf26ae2720..36be543b7c50 100644
--- a/drivers/net/wireless/ath/ath12k/dp_rx.c
+++ b/drivers/net/wireless/ath/ath12k/dp_rx.c
@@ -1699,7 +1699,7 @@ int ath12k_dp_rx_alloc(struct ath12k_base *ab)
ret = ath12k_dp_srng_setup(ab,
&dp->rx_refill_buf_ring.refill_buf_ring,
HAL_RXDMA_BUF, 0, 0,
- DP_RXDMA_BUF_RING_SIZE);
+ ath12k_dp_rxdma_buf_ring_size(dp_params));
if (ret) {
ath12k_warn(ab, "failed to setup rx_refill_buf_ring\n");
return ret;
--
2.34.1
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH ath-next 2/2] wifi: ath12k: Increase RXDMA buffer ring size for default memory profile
2026-10-07 9:23 [PATCH ath-next 0/2] wifi: ath12k: Configure RXDMA buffer ring size per memory profile Aaradhana Sahu
2026-10-07 9:23 ` [PATCH ath-next 1/2] wifi: ath12k: Make RXDMA buffer ring size configurable " Aaradhana Sahu
@ 2026-10-07 9:23 ` Aaradhana Sahu
1 sibling, 0 replies; 3+ messages in thread
From: Aaradhana Sahu @ 2026-10-07 9:23 UTC (permalink / raw)
To: Jeff Johnson
Cc: linux-wireless, ath12k, linux-kernel, Aaradhana Sahu,
Pavankumar Nandeshwar
From: Pavankumar Nandeshwar <pavankumar.nandeshwar@oss.qualcomm.com>
The default RXDMA buffer ring size of 4096 entries can become a
bottleneck under high RX traffic load, resulting in reduced receive
throughput due to limited buffer availability.
Increase the RXDMA buffer ring size to 8192 entries for the default
memory profile to provide additional RX buffering and improve RX packet
processing efficiency.
This increases memory consumption by approximately 9-10 MiB and improves
RX throughput by ~20% with the default memory profile
(ATH12K_QMI_MEMORY_MODE_DEFAULT).
Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.6-01243-QCAHKSWPL_SILICONZ-1
Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.1.c7-00108-QCAHMTSWPL_V1.0_V2.0_SILICONZ_UPSTREAM-3
Tested-on: QCC2072 hw1.0 PCI WLAN.COL.1.0.c2-00074-QCACOLSWPL_V1_TO_SILICONZ-1
Signed-off-by: Pavankumar Nandeshwar <pavankumar.nandeshwar@oss.qualcomm.com>
Signed-off-by: Aaradhana Sahu <aaradhana.sahu@oss.qualcomm.com>
---
drivers/net/wireless/ath/ath12k/core.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/wireless/ath/ath12k/core.c b/drivers/net/wireless/ath/ath12k/core.c
index 764e646d0090..a70590e1d821 100644
--- a/drivers/net/wireless/ath/ath12k/core.c
+++ b/drivers/net/wireless/ath/ath12k/core.c
@@ -54,7 +54,7 @@ ath12k_mem_profile_based_param ath12k_mem_profile_based_param[] = {
.num_pool_tx_desc = 32768,
.rx_desc_count = 12288,
.rx_release_ring_size = 16384,
- .rxdma_buf_ring_size = 4096,
+ .rxdma_buf_ring_size = 8192,
},
},
[ATH12K_QMI_MEMORY_MODE_LOW_512_M] = {
--
2.34.1
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-10-07 9:24 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-10-07 9:23 [PATCH ath-next 0/2] wifi: ath12k: Configure RXDMA buffer ring size per memory profile Aaradhana Sahu
2026-10-07 9:23 ` [PATCH ath-next 1/2] wifi: ath12k: Make RXDMA buffer ring size configurable " Aaradhana Sahu
2026-10-07 9:23 ` [PATCH ath-next 2/2] wifi: ath12k: Increase RXDMA buffer ring size for default " Aaradhana Sahu
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®