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:

committed by
snandini

parent
26e61b5928
commit
65812e69c8
@@ -161,6 +161,12 @@ struct cdp_tx_stats {
|
|||||||
uint32_t fw_rem_tx;
|
uint32_t fw_rem_tx;
|
||||||
/* aged out in mpdu/msdu queues*/
|
/* aged out in mpdu/msdu queues*/
|
||||||
uint32_t age_out;
|
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;
|
} dropped;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -279,6 +279,9 @@ while (0)
|
|||||||
DP_STATS_AGGR(_tgtobj, _srcobj, tx.dropped.fw_rem); \
|
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_tx); \
|
||||||
DP_STATS_AGGR(_tgtobj, _srcobj, tx.dropped.fw_rem_notx); \
|
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, tx.dropped.age_out); \
|
||||||
\
|
\
|
||||||
DP_STATS_AGGR(_tgtobj, _srcobj, rx.err.mic_err); \
|
DP_STATS_AGGR(_tgtobj, _srcobj, rx.err.mic_err); \
|
||||||
|
@@ -4538,11 +4538,16 @@ dp_print_pdev_tx_stats(struct dp_pdev *pdev)
|
|||||||
pdev->stats.tx_i.processed.num);
|
pdev->stats.tx_i.processed.num);
|
||||||
DP_PRINT_STATS(" Bytes = %llu",
|
DP_PRINT_STATS(" Bytes = %llu",
|
||||||
pdev->stats.tx_i.processed.bytes);
|
pdev->stats.tx_i.processed.bytes);
|
||||||
DP_PRINT_STATS("Completions:");
|
DP_PRINT_STATS("Total Completions:");
|
||||||
DP_PRINT_STATS(" Packets = %d",
|
DP_PRINT_STATS(" Packets = %u",
|
||||||
pdev->stats.tx.comp_pkt.num);
|
pdev->stats.tx.comp_pkt.num);
|
||||||
DP_PRINT_STATS(" Bytes = %llu",
|
DP_PRINT_STATS(" Bytes = %llu",
|
||||||
pdev->stats.tx.comp_pkt.bytes);
|
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("Dropped:");
|
||||||
DP_PRINT_STATS(" Total = %d",
|
DP_PRINT_STATS(" Total = %d",
|
||||||
pdev->stats.tx_i.dropped.dropped_pkt.num);
|
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);
|
pdev->stats.tx.dropped.fw_rem_tx);
|
||||||
DP_PRINT_STATS(" FW removed untransmitted = %d",
|
DP_PRINT_STATS(" FW removed untransmitted = %d",
|
||||||
pdev->stats.tx.dropped.fw_rem_notx);
|
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",
|
DP_PRINT_STATS(" Aged Out from msdu/mpdu queues = %d",
|
||||||
pdev->stats.tx.dropped.age_out);
|
pdev->stats.tx.dropped.age_out);
|
||||||
DP_PRINT_STATS("Scatter Gather:");
|
DP_PRINT_STATS("Scatter Gather:");
|
||||||
|
@@ -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)
|
if (!ts->release_src == HAL_TX_COMP_RELEASE_SOURCE_TQM)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|
||||||
|
DP_STATS_INC_PKT(peer, tx.comp_pkt, 1, length);
|
||||||
DP_STATS_INCC(peer, tx.dropped.age_out, 1,
|
DP_STATS_INCC(peer, tx.dropped.age_out, 1,
|
||||||
(ts->status == HAL_TX_TQM_RR_REM_CMD_AGED));
|
(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,
|
DP_STATS_INCC(peer, tx.dropped.fw_rem_tx, 1,
|
||||||
(ts->status == HAL_TX_TQM_RR_REM_CMD_TX));
|
(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)
|
if (!ts->status == HAL_TX_TQM_RR_FRAME_ACKED)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user