From ec9a530bc0ba434854f7b1be865e2004e59ce9c9 Mon Sep 17 00:00:00 2001 From: Venkata Sharath Chandra Manchala Date: Thu, 13 Dec 2018 15:25:35 -0800 Subject: [PATCH] qcacmn: Fix statistics counters 1. Account for total Tx completions received on wbm2sw release ring. 2. Avoid multiple updates to invalid peer counter on wbm error path handling. Change-Id: I904208e1bd83e98598870a1f05c4b17c3fb20e2d CRs-Fixed: 2366790 --- dp/wifi3.0/dp_main.c | 8 +++++--- dp/wifi3.0/dp_rx.c | 2 -- dp/wifi3.0/dp_tx.c | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/dp/wifi3.0/dp_main.c b/dp/wifi3.0/dp_main.c index ab1fc76a416f..578fbb602593 100644 --- a/dp/wifi3.0/dp_main.c +++ b/dp/wifi3.0/dp_main.c @@ -6236,6 +6236,7 @@ static inline void dp_print_pdev_tx_stats(struct dp_pdev *pdev) { uint8_t index = 0; + DP_PRINT_STATS("PDEV Tx Stats:\n"); DP_PRINT_STATS("Received From Stack:"); DP_PRINT_STATS(" Packets = %d", @@ -6361,6 +6362,7 @@ dp_print_pdev_tx_stats(struct dp_pdev *pdev) DP_PRINT_STATS(" Tag[%d] = %llu", index, pdev->stats.ppdu_stats_counter[index]); } + } /** @@ -6482,7 +6484,7 @@ dp_print_soc_tx_stats(struct dp_soc *soc) DP_PRINT_STATS("Tx Descriptors In Use = %d", soc->stats.tx.desc_in_use); - DP_PRINT_STATS("Invalid peer:"); + DP_PRINT_STATS("Tx Invalid peer:"); DP_PRINT_STATS(" Packets = %d", soc->stats.tx.tx_invalid_peer.num); DP_PRINT_STATS(" Bytes = %llu", @@ -8381,7 +8383,7 @@ static void dp_txrx_path_stats(struct dp_soc *soc) pdev->stats.tx.dropped.fw_rem_tx); DP_TRACE_STATS(INFO_HIGH, "firmware removed notx %u", pdev->stats.tx.dropped.fw_rem_notx); - DP_TRACE_STATS(INFO_HIGH, "peer_invalid: %u", + DP_TRACE_STATS(INFO_HIGH, "Invalid peer on tx path: %u", pdev->soc->stats.tx.tx_invalid_peer.num); DP_TRACE_STATS(INFO_HIGH, "Tx packets sent per interrupt:"); @@ -8427,7 +8429,7 @@ static void dp_txrx_path_stats(struct dp_soc *soc) pdev->stats.rx.raw.bytes); DP_TRACE_STATS(INFO_HIGH, "dropped: error %u msdus", pdev->stats.rx.err.mic_err); - DP_TRACE_STATS(INFO_HIGH, "peer invalid %u", + DP_TRACE_STATS(INFO_HIGH, "Invalid peer on rx path: %u", pdev->soc->stats.rx.err.rx_invalid_peer.num); DP_TRACE_STATS(INFO_HIGH, "Reo Statistics"); diff --git a/dp/wifi3.0/dp_rx.c b/dp/wifi3.0/dp_rx.c index 39fc125abb1e..971c1663ac8b 100644 --- a/dp/wifi3.0/dp_rx.c +++ b/dp/wifi3.0/dp_rx.c @@ -895,8 +895,6 @@ free: curr_nbuf = mpdu; while (curr_nbuf) { next_nbuf = qdf_nbuf_next(curr_nbuf); - DP_STATS_INC_PKT(soc, rx.err.rx_invalid_peer, 1, - qdf_nbuf_len(curr_nbuf)); qdf_nbuf_free(curr_nbuf); curr_nbuf = next_nbuf; } diff --git a/dp/wifi3.0/dp_tx.c b/dp/wifi3.0/dp_tx.c index 40bfad58d7c8..baf670d6755e 100644 --- a/dp/wifi3.0/dp_tx.c +++ b/dp/wifi3.0/dp_tx.c @@ -2655,6 +2655,7 @@ dp_tx_update_peer_stats(struct dp_peer *peer, return; } + DP_STATS_INC_PKT(peer, tx.comp_pkt, 1, length); DP_STATS_INCC(peer, tx.dropped.age_out, 1, (ts->status == HAL_TX_TQM_RR_REM_CMD_AGED)); @@ -2679,7 +2680,6 @@ dp_tx_update_peer_stats(struct dp_peer *peer, if (ts->status != HAL_TX_TQM_RR_FRAME_ACKED) { return; } - DP_STATS_INCC(peer, tx.ofdma, 1, ts->ofdma); DP_STATS_INCC(peer, tx.amsdu_cnt, 1, ts->msdu_part_of_amsdu);