qcacmn: Fix for Tx completions counter not being updated in txrx_stats

Tx completion success counters are not being updated correctly.
Accumulate successful completions in tx_success variable.

Change-Id: I290e581e93e03ad23e349c9df7834174d6d3a787
CRs-Fixed: 2191599
This commit is contained in:
Venkata Sharath Chandra Manchala
2018-02-15 16:04:52 -08:00
committed by snandini
parent 26e61b5928
commit 65812e69c8
4 changed files with 33 additions and 2 deletions

View File

@@ -161,6 +161,12 @@ struct cdp_tx_stats {
uint32_t fw_rem_tx;
/* aged out in mpdu/msdu queues*/
uint32_t age_out;
/* discarded by firmware reason 1 */
uint32_t fw_reason1;
/* discarded by firmware reason 2 */
uint32_t fw_reason2;
/* discarded by firmware reason 3 */
uint32_t fw_reason3;
} dropped;
};

View File

@@ -279,6 +279,9 @@ while (0)
DP_STATS_AGGR(_tgtobj, _srcobj, tx.dropped.fw_rem); \
DP_STATS_AGGR(_tgtobj, _srcobj, tx.dropped.fw_rem_tx); \
DP_STATS_AGGR(_tgtobj, _srcobj, tx.dropped.fw_rem_notx); \
DP_STATS_AGGR(_tgtobj, _srcobj, tx.dropped.fw_reason1); \
DP_STATS_AGGR(_tgtobj, _srcobj, tx.dropped.fw_reason2); \
DP_STATS_AGGR(_tgtobj, _srcobj, tx.dropped.fw_reason3); \
DP_STATS_AGGR(_tgtobj, _srcobj, tx.dropped.age_out); \
\
DP_STATS_AGGR(_tgtobj, _srcobj, rx.err.mic_err); \

View File

@@ -4538,11 +4538,16 @@ dp_print_pdev_tx_stats(struct dp_pdev *pdev)
pdev->stats.tx_i.processed.num);
DP_PRINT_STATS(" Bytes = %llu",
pdev->stats.tx_i.processed.bytes);
DP_PRINT_STATS("Completions:");
DP_PRINT_STATS(" Packets = %d",
DP_PRINT_STATS("Total Completions:");
DP_PRINT_STATS(" Packets = %u",
pdev->stats.tx.comp_pkt.num);
DP_PRINT_STATS(" Bytes = %llu",
pdev->stats.tx.comp_pkt.bytes);
DP_PRINT_STATS("Successful Completions:");
DP_PRINT_STATS(" Packets = %u",
pdev->stats.tx.tx_success.num);
DP_PRINT_STATS(" Bytes = %llu",
pdev->stats.tx.tx_success.bytes);
DP_PRINT_STATS("Dropped:");
DP_PRINT_STATS(" Total = %d",
pdev->stats.tx_i.dropped.dropped_pkt.num);
@@ -4562,6 +4567,12 @@ dp_print_pdev_tx_stats(struct dp_pdev *pdev)
pdev->stats.tx.dropped.fw_rem_tx);
DP_PRINT_STATS(" FW removed untransmitted = %d",
pdev->stats.tx.dropped.fw_rem_notx);
DP_PRINT_STATS(" FW removed untransmitted fw_reason1 = %d",
pdev->stats.tx.dropped.fw_reason1);
DP_PRINT_STATS(" FW removed untransmitted fw_reason2 = %d",
pdev->stats.tx.dropped.fw_reason2);
DP_PRINT_STATS(" FW removed untransmitted fw_reason3 = %d",
pdev->stats.tx.dropped.fw_reason3);
DP_PRINT_STATS(" Aged Out from msdu/mpdu queues = %d",
pdev->stats.tx.dropped.age_out);
DP_PRINT_STATS("Scatter Gather:");

View File

@@ -2525,6 +2525,8 @@ static void dp_tx_update_peer_stats(struct dp_peer *peer,
if (!ts->release_src == HAL_TX_COMP_RELEASE_SOURCE_TQM)
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));
@@ -2537,6 +2539,15 @@ static void dp_tx_update_peer_stats(struct dp_peer *peer,
DP_STATS_INCC(peer, tx.dropped.fw_rem_tx, 1,
(ts->status == HAL_TX_TQM_RR_REM_CMD_TX));
DP_STATS_INCC(peer, tx.dropped.fw_reason1, 1,
(ts->status == HAL_TX_TQM_RR_FW_REASON1));
DP_STATS_INCC(peer, tx.dropped.fw_reason2, 1,
(ts->status == HAL_TX_TQM_RR_FW_REASON2));
DP_STATS_INCC(peer, tx.dropped.fw_reason3, 1,
(ts->status == HAL_TX_TQM_RR_FW_REASON3));
if (!ts->status == HAL_TX_TQM_RR_FRAME_ACKED)
return;