qcacmn: reduce log level for mon status ring tlv-tag error
STATUS_DONE is missing sometimes in monitor status ring, but logging for each entry in the ring increases the time for which the hal_ring access lock is held. If there are many entries in the monitor status ring, this can lead to the hal ring access lock being held for too long and cause inconsistencies. Reduce the logging level of the tlv tag STATUS_DONE errors and have a counter for the cases when this happens. CRs-Fixed: 2502422 Change-Id: Ica77ce62bbe2c6b7691d638ac44ab0452dd2fd97
This commit is contained in:
@@ -216,6 +216,7 @@ enum {
|
|||||||
* @dest_mpdu_done: destination ring MPDU count
|
* @dest_mpdu_done: destination ring MPDU count
|
||||||
* @dup_mon_linkdesc_cnt: duplicate link descriptor indications from HW
|
* @dup_mon_linkdesc_cnt: duplicate link descriptor indications from HW
|
||||||
* @dup_mon_buf_cnt: duplicate buffer indications from HW
|
* @dup_mon_buf_cnt: duplicate buffer indications from HW
|
||||||
|
* @tlv_tag_status_err: status not correct in the tlv tag
|
||||||
*/
|
*/
|
||||||
struct cdp_pdev_mon_stats {
|
struct cdp_pdev_mon_stats {
|
||||||
#ifndef REMOVE_MON_DBG_STATS
|
#ifndef REMOVE_MON_DBG_STATS
|
||||||
@@ -236,5 +237,6 @@ struct cdp_pdev_mon_stats {
|
|||||||
uint32_t dest_ring_ppdu_id_hist[MAX_PPDU_ID_HIST];
|
uint32_t dest_ring_ppdu_id_hist[MAX_PPDU_ID_HIST];
|
||||||
uint32_t ppdu_id_hist_idx;
|
uint32_t ppdu_id_hist_idx;
|
||||||
uint32_t mon_rx_dest_stuck;
|
uint32_t mon_rx_dest_stuck;
|
||||||
|
uint32_t tlv_tag_status_err;
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
@@ -1205,10 +1205,9 @@ dp_rx_mon_status_srng_process(struct dp_soc *soc, uint32_t mac_id,
|
|||||||
uint32_t hp, tp;
|
uint32_t hp, tp;
|
||||||
hal_get_sw_hptp(hal_soc, mon_status_srng,
|
hal_get_sw_hptp(hal_soc, mon_status_srng,
|
||||||
&tp, &hp);
|
&tp, &hp);
|
||||||
QDF_TRACE(QDF_MODULE_ID_DP,
|
dp_info_rl("tlv tag status error hp:%u, tp:%u",
|
||||||
QDF_TRACE_LEVEL_ERROR,
|
hp, tp);
|
||||||
"[%s][%d] status not done - hp:%u, tp:%u",
|
pdev->rx_mon_stats.tlv_tag_status_err++;
|
||||||
__func__, __LINE__, hp, tp);
|
|
||||||
/* WAR for missing status: Skip status entry */
|
/* WAR for missing status: Skip status entry */
|
||||||
hal_srng_src_get_next(hal_soc, mon_status_srng);
|
hal_srng_src_get_next(hal_soc, mon_status_srng);
|
||||||
continue;
|
continue;
|
||||||
|
@@ -5506,6 +5506,8 @@ dp_print_pdev_rx_mon_stats(struct dp_pdev *pdev)
|
|||||||
rx_mon_stats->dest_ppdu_done);
|
rx_mon_stats->dest_ppdu_done);
|
||||||
DP_PRINT_STATS("dest_mpdu_done_cnt = %d",
|
DP_PRINT_STATS("dest_mpdu_done_cnt = %d",
|
||||||
rx_mon_stats->dest_mpdu_done);
|
rx_mon_stats->dest_mpdu_done);
|
||||||
|
DP_PRINT_STATS("tlv_tag_status_err_cnt = %u",
|
||||||
|
rx_mon_stats->tlv_tag_status_err);
|
||||||
DP_PRINT_STATS("dest_mpdu_drop_cnt = %d",
|
DP_PRINT_STATS("dest_mpdu_drop_cnt = %d",
|
||||||
rx_mon_stats->dest_mpdu_drop);
|
rx_mon_stats->dest_mpdu_drop);
|
||||||
DP_PRINT_STATS("dup_mon_linkdesc_cnt = %d",
|
DP_PRINT_STATS("dup_mon_linkdesc_cnt = %d",
|
||||||
|
Reference in New Issue
Block a user