qcacmn: Add counter in non-TQM based Tx completion path
Rate limit the log in non-TQM Tx completion path and add a counter to increment whenever Tx completion status is received and release source is non-TQM. Change-Id: I8968ccc7a499577bd4fdfaef78e6520b00c12503 CRs-Fixed: 3201403
This commit is contained in:

committed by
Madan Koyyalamudi

parent
9d283234a7
commit
85b76d5a6c
@@ -1366,6 +1366,8 @@ struct protocol_trace_count {
|
||||
* @su_be_ppdu_cnt: SU Tx packet count
|
||||
* @mu_be_ppdu_cnt: MU Tx packet count
|
||||
* @punc_bw[MAX_PUNCTURED_MODE]: MSDU count for punctured BW
|
||||
* @release_src_not_tqm: Counter to keep track of release source is not TQM
|
||||
* in TX completion status processing
|
||||
*/
|
||||
struct cdp_tx_stats {
|
||||
struct cdp_pkt_info comp_pkt;
|
||||
@@ -1483,6 +1485,7 @@ struct cdp_tx_stats {
|
||||
struct cdp_pkt_type mu_be_ppdu_cnt[TXRX_TYPE_MU_MAX];
|
||||
uint32_t punc_bw[MAX_PUNCTURED_MODE];
|
||||
#endif
|
||||
uint32_t release_src_not_tqm;
|
||||
};
|
||||
|
||||
/* struct cdp_rx_stats - rx Level Stats
|
||||
|
@@ -1580,6 +1580,8 @@ void dp_update_vdev_stats_on_peer_unmap(struct dp_vdev *vdev,
|
||||
_tgtobj->tx.tx_success_twt.bytes += \
|
||||
_srcobj->tx.tx_success_twt.bytes; \
|
||||
_tgtobj->tx.last_tx_ts = _srcobj->tx.last_tx_ts; \
|
||||
_tgtobj->tx.release_src_not_tqm += \
|
||||
_srcobj->tx.release_src_not_tqm; \
|
||||
for (i = 0; i < QDF_PROTO_SUBTYPE_MAX; i++) { \
|
||||
_tgtobj->tx.no_ack_count[i] += \
|
||||
_srcobj->tx.no_ack_count[i];\
|
||||
|
@@ -6301,6 +6301,8 @@ void dp_print_peer_stats(struct dp_peer *peer,
|
||||
peer_stats->tx.last_ack_rssi);
|
||||
DP_PRINT_STATS("Dropped At FW: Removed Pkts = %u",
|
||||
peer_stats->tx.dropped.fw_rem.num);
|
||||
DP_PRINT_STATS("Release source not TQM = %u",
|
||||
peer_stats->tx.release_src_not_tqm);
|
||||
if (pdev && !wlan_cfg_get_dp_pdev_nss_enabled(pdev->wlan_cfg_ctx)) {
|
||||
DP_PRINT_STATS("Dropped At FW: Removed bytes = %llu",
|
||||
peer_stats->tx.dropped.fw_rem.bytes);
|
||||
@@ -6494,7 +6496,7 @@ void dp_print_peer_stats(struct dp_peer *peer,
|
||||
peer_stats->rx.err.rxdma_wifi_parse_err);
|
||||
DP_PRINT_STATS("Msdu's Received As Part of Ampdu = %d",
|
||||
peer_stats->rx.non_ampdu_cnt);
|
||||
DP_PRINT_STATS("Msdu's Recived As Ampdu = %d",
|
||||
DP_PRINT_STATS("Msdu's Received As Ampdu = %d",
|
||||
peer_stats->rx.ampdu_cnt);
|
||||
DP_PRINT_STATS("Msdu's Received Not Part of Amsdu's = %d",
|
||||
peer_stats->rx.non_amsdu_cnt);
|
||||
|
@@ -4152,7 +4152,8 @@ dp_tx_update_peer_stats(struct dp_tx_desc_s *tx_desc,
|
||||
tid_stats = &pdev->stats.tid_stats.tid_tx_stats[ring_id][tid];
|
||||
|
||||
if (ts->release_src != HAL_TX_COMP_RELEASE_SOURCE_TQM) {
|
||||
dp_err("Release source is not from TQM");
|
||||
dp_err_rl("Release source:%d is not from TQM", ts->release_src);
|
||||
DP_PEER_PER_PKT_STATS_INC(txrx_peer, tx.release_src_not_tqm, 1);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@@ -3479,6 +3479,8 @@ typedef void *dp_txrx_ref_handle;
|
||||
* @last_tx_ts: last timestamp in jiffies when tx comp occurred
|
||||
* @avg_sojourn_msdu[CDP_DATA_TID_MAX]: Avg sojourn msdu stat
|
||||
* @protocol_trace_cnt: per-peer protocol counter
|
||||
* @release_src_not_tqm: Counter to keep track of release source is not TQM
|
||||
* in TX completion status processing
|
||||
*/
|
||||
struct dp_peer_per_pkt_tx_stats {
|
||||
struct cdp_pkt_info ucast;
|
||||
@@ -3516,6 +3518,7 @@ struct dp_peer_per_pkt_tx_stats {
|
||||
#ifdef VDEV_PEER_PROTOCOL_COUNT
|
||||
struct protocol_trace_count protocol_trace_cnt[CDP_TRACE_MAX];
|
||||
#endif
|
||||
uint32_t release_src_not_tqm;
|
||||
};
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user