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:
@@ -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;
|
||||
|
Reference in New Issue
Block a user