qcacmn: Add event history logs for datapath

Add support to log the important events in
datapath, which will help in debugging the
datapath issues.

IRQ handler, Napi poll and srng access start/end
are the events which are currently logged.

CRs-Fixed: 2457854
Change-Id: Iba105b0e79443b670a01a929f999f94e00ea92f2
This commit is contained in:
Rakesh Pillai
2019-05-31 20:28:30 +05:30
committed by nshrivas
parent a833f30506
commit 2529ae1c8a
13 changed files with 362 additions and 66 deletions

View File

@@ -1078,20 +1078,9 @@ fail:
return;
}
/**
* dp_rx_err_process() - Processes error frames routed to REO error ring
*
* @soc: core txrx main context
* @hal_ring: opaque pointer to the HAL Rx Error Ring, which will be serviced
* @quota: No. of units (packets) that can be serviced in one shot.
*
* This function implements error processing and top level demultiplexer
* for all the frames routed to REO error ring.
*
* Return: uint32_t: No. of elements processed
*/
uint32_t
dp_rx_err_process(struct dp_soc *soc, void *hal_ring, uint32_t quota)
dp_rx_err_process(struct dp_intr *int_ctx, struct dp_soc *soc,
void *hal_ring, uint32_t quota)
{
void *hal_soc;
void *ring_desc;
@@ -1120,7 +1109,7 @@ dp_rx_err_process(struct dp_soc *soc, void *hal_ring, uint32_t quota)
/* Debug -- Remove later */
qdf_assert(hal_soc);
if (qdf_unlikely(hal_srng_access_start(hal_soc, hal_ring))) {
if (qdf_unlikely(dp_srng_access_start(int_ctx, soc, hal_ring))) {
/* TODO */
/*
@@ -1248,7 +1237,7 @@ dp_rx_err_process(struct dp_soc *soc, void *hal_ring, uint32_t quota)
}
done:
hal_srng_access_end(hal_soc, hal_ring);
dp_srng_access_end(int_ctx, soc, hal_ring);
if (soc->rx.flags.defrag_timeout_check) {
uint32_t now_ms =
@@ -1276,20 +1265,9 @@ done:
return rx_bufs_used; /* Assume no scale factor for now */
}
/**
* dp_rx_wbm_err_process() - Processes error frames routed to WBM release ring
*
* @soc: core txrx main context
* @hal_ring: opaque pointer to the HAL Rx Error Ring, which will be serviced
* @quota: No. of units (packets) that can be serviced in one shot.
*
* This function implements error processing and top level demultiplexer
* for all the frames routed to WBM2HOST sw release ring.
*
* Return: uint32_t: No. of elements processed
*/
uint32_t
dp_rx_wbm_err_process(struct dp_soc *soc, void *hal_ring, uint32_t quota)
dp_rx_wbm_err_process(struct dp_intr *int_ctx, struct dp_soc *soc,
void *hal_ring, uint32_t quota)
{
void *hal_soc;
void *ring_desc;
@@ -1320,7 +1298,7 @@ dp_rx_wbm_err_process(struct dp_soc *soc, void *hal_ring, uint32_t quota)
/* Debug -- Remove later */
qdf_assert(hal_soc);
if (qdf_unlikely(hal_srng_access_start(hal_soc, hal_ring))) {
if (qdf_unlikely(dp_srng_access_start(int_ctx, soc, hal_ring))) {
/* TODO */
/*
@@ -1407,7 +1385,7 @@ dp_rx_wbm_err_process(struct dp_soc *soc, void *hal_ring, uint32_t quota)
rx_desc);
}
done:
hal_srng_access_end(hal_soc, hal_ring);
dp_srng_access_end(int_ctx, soc, hal_ring);
for (mac_id = 0; mac_id < MAX_PDEV_CNT; mac_id++) {
if (rx_bufs_reaped[mac_id]) {
@@ -1708,18 +1686,9 @@ dp_rx_err_mpdu_pop(struct dp_soc *soc, uint32_t mac_id,
return rx_bufs_used;
}
/**
* dp_rxdma_err_process() - RxDMA error processing functionality
*
* @soc: core txrx main contex
* @mac_id: mac id which is one of 3 mac_ids
* @hal_ring: opaque pointer to the HAL Rx Ring, which will be serviced
* @quota: No. of units (packets) that can be serviced in one shot.
* Return: num of buffers processed
*/
uint32_t
dp_rxdma_err_process(struct dp_soc *soc, uint32_t mac_id, uint32_t quota)
dp_rxdma_err_process(struct dp_intr *int_ctx, struct dp_soc *soc,
uint32_t mac_id, uint32_t quota)
{
struct dp_pdev *pdev = dp_get_pdev_for_mac_id(soc, mac_id);
int mac_for_pdev = dp_get_mac_id_for_mac(soc, mac_id);
@@ -1750,7 +1719,7 @@ dp_rxdma_err_process(struct dp_soc *soc, uint32_t mac_id, uint32_t quota)
qdf_assert(hal_soc);
if (qdf_unlikely(hal_srng_access_start(hal_soc, err_dst_srng))) {
if (qdf_unlikely(dp_srng_access_start(int_ctx, soc, err_dst_srng))) {
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR,
"%s %d : HAL Monitor Destination Ring Init \
Failed -- %pK",
@@ -1766,7 +1735,7 @@ dp_rxdma_err_process(struct dp_soc *soc, uint32_t mac_id, uint32_t quota)
&head, &tail);
}
hal_srng_access_end(hal_soc, err_dst_srng);
dp_srng_access_end(int_ctx, soc, err_dst_srng);
if (rx_bufs_used) {
dp_rxdma_srng = &pdev->rx_refill_buf_ring;