qcacmn: Use dp_info_rl instead of QDF_TRACE to avoid aggressive logging

There might be aggressive error logging in the dmesg if wbm_desc_rel_ring
is hang. So use the dp_info_rl instead of QDF_TRACE to reduce aggressive
logging to avaoid spin lock huge delay when processing the
reo_exception_ring.

Change-Id: I4622f28cd6d8771cf27643a867892b62860d1ddc
CRs-Fixed: 2648149
This commit is contained in:
Tiger Yu
2020-03-31 10:23:10 +08:00
committed by nshrivas
parent 2bfa222e36
commit 33bf405da4
3 changed files with 19 additions and 6 deletions

View File

@@ -201,12 +201,18 @@ dp_rx_link_desc_return_by_addr(struct dp_soc *soc,
status = QDF_STATUS_SUCCESS;
} else {
struct hal_srng *srng = (struct hal_srng *)wbm_rel_srng;
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR,
FL("WBM Release Ring (Id %d) Full"), srng->ring_id);
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR,
"HP 0x%x Reap HP 0x%x TP 0x%x Cached TP 0x%x",
*srng->u.src_ring.hp_addr, srng->u.src_ring.reap_hp,
*srng->u.src_ring.tp_addr, srng->u.src_ring.cached_tp);
DP_STATS_INC(soc, rx.err.hal_ring_access_full_fail, 1);
dp_info_rl("WBM Release Ring (Id %d) Full(Fail CNT %u)",
srng->ring_id,
soc->stats.rx.err.hal_ring_access_full_fail);
dp_info_rl("HP 0x%x Reap HP 0x%x TP 0x%x Cached TP 0x%x",
*srng->u.src_ring.hp_addr,
srng->u.src_ring.reap_hp,
*srng->u.src_ring.tp_addr,
srng->u.src_ring.cached_tp);
qdf_assert(0);
}
done:
hal_srng_access_end(hal_soc, wbm_rel_srng);

View File

@@ -5592,6 +5592,9 @@ void dp_txrx_path_stats(struct dp_soc *soc)
DP_PRINT_STATS("hal ring access fail: %u msdus",
pdev->soc->stats.rx.err.hal_ring_access_fail);
DP_PRINT_STATS("hal ring access full fail: %u msdus",
pdev->soc->stats.rx.err.hal_ring_access_full_fail);
for (error_code = 0; error_code < HAL_REO_ERR_MAX;
error_code++) {
if (!pdev->soc->stats.rx.err.reo_error[error_code])
@@ -6068,6 +6071,8 @@ dp_print_soc_rx_stats(struct dp_soc *soc)
soc->stats.rx.err.rx_invalid_peer.num);
DP_PRINT_STATS("HAL Ring Access Fail = %d",
soc->stats.rx.err.hal_ring_access_fail);
DP_PRINT_STATS("HAL Ring Access Full Fail = %d",
soc->stats.rx.err.hal_ring_access_full_fail);
DP_PRINT_STATS("MSDU Done failures = %d",
soc->stats.rx.err.msdu_done_fail);
DP_PRINT_STATS("RX frags: %d", soc->stats.rx.rx_frags);

View File

@@ -775,6 +775,8 @@ struct dp_soc_stats {
struct cdp_pkt_info rx_invalid_pkt_len;
/* HAL ring access Fail error count */
uint32_t hal_ring_access_fail;
/* HAL ring access full Fail error count */
uint32_t hal_ring_access_full_fail;
/* RX DMA error count */
uint32_t rxdma_error[HAL_RXDMA_ERR_MAX];
/* RX REO DEST Desc Invalid Magic count */