mirror of
https://github.com/Telecominfraproject/wlan-ap.git
synced 2025-12-20 10:51:27 +00:00
52 lines
1.9 KiB
Diff
52 lines
1.9 KiB
Diff
From fe0876f1865869e93bde6e138f1d9d99f1ae54a9 Mon Sep 17 00:00:00 2001
|
|
From: Pradeep Kumar Chitrapu <quic_pradeepc@quicinc.com>
|
|
Date: Wed, 10 Aug 2022 11:35:45 -0700
|
|
Subject: [PATCH 03/12] ath12k: add stats for TX buffer allocation failures
|
|
|
|
Total tx buffers allocated per TCL ring id. When buffer is not available
|
|
on a particular TCL ring, capture this in stats.
|
|
|
|
Signed-off-by: Pradeep Kumar Chitrapu <quic_pradeepc@quicinc.com>
|
|
---
|
|
drivers/net/wireless/ath/ath12k/core.h | 3 +++
|
|
drivers/net/wireless/ath/ath12k/debugfs.c | 5 +++++
|
|
drivers/net/wireless/ath/ath12k/dp_tx.c | 1 +
|
|
3 files changed, 9 insertions(+)
|
|
|
|
--- a/drivers/net/wireless/ath/ath12k/core.h
|
|
+++ b/drivers/net/wireless/ath/ath12k/core.h
|
|
@@ -881,6 +881,9 @@ struct ath12k_dp_ring_bp_stats {
|
|
struct ath12k_soc_dp_tx_err_stats {
|
|
/* TCL Ring Descriptor unavailable */
|
|
u32 desc_na[DP_TCL_NUM_RING_MAX];
|
|
+ /* TCL Ring Buffers unavailable */
|
|
+ u32 txbuf_na[DP_TCL_NUM_RING_MAX];
|
|
+
|
|
/* Other failures during dp_tx due to mem allocation failure
|
|
* idr unavailable etc.
|
|
*/
|
|
--- a/drivers/net/wireless/ath/ath12k/debugfs.c
|
|
+++ b/drivers/net/wireless/ath/ath12k/debugfs.c
|
|
@@ -865,6 +865,11 @@ static ssize_t ath12k_debugfs_dump_soc_d
|
|
len += scnprintf(buf + len, size - len, "ring%d: %u\n",
|
|
i, soc_stats->tx_err.desc_na[i]);
|
|
|
|
+ len += scnprintf(buf + len, size - len, "\nTCL Ring Buffer Alloc Failures:\n");
|
|
+ for (i = 0; i < DP_TCL_NUM_RING_MAX; i++)
|
|
+ len += scnprintf(buf + len, size - len, "ring%d: %u\n",
|
|
+ i, soc_stats->tx_err.txbuf_na[i]);
|
|
+
|
|
len += scnprintf(buf + len, size - len,
|
|
"\nMisc Transmit Failures: %d\n",
|
|
atomic_read(&soc_stats->tx_err.misc_fail));
|
|
--- a/drivers/net/wireless/ath/ath12k/dp_tx.c
|
|
+++ b/drivers/net/wireless/ath/ath12k/dp_tx.c
|
|
@@ -169,6 +169,7 @@ tcl_ring_sel:
|
|
|
|
tx_desc = ath12k_dp_tx_assign_buffer(dp, ti.ring_id);
|
|
if (!tx_desc) {
|
|
+ ab->soc_stats.tx_err.txbuf_na[ti.ring_id]++;
|
|
if (ring_map == (BIT(DP_TCL_NUM_RING_MAX) - 1))
|
|
return -ENOSPC;
|
|
|