qcacmn: Debug prints for monitor mode

Add some debug prints for monitor mode

Change-Id: Ie12279c832647cac9e1f152c98fa0205dd9d495e
CRs-Fixed: 2173407
This commit is contained in:
Mohit Khanna
2017-12-12 10:55:48 +08:00
committed by snandini
parent e70f87290c
commit 9a6fdd5cee
5 changed files with 65 additions and 46 deletions

View File

@@ -938,12 +938,12 @@ static QDF_STATUS dp_soc_interrupt_attach_wrapper(void *txrx_soc)
if (!(soc->wlan_cfg_ctx->napi_enabled) ||
con_mode_monitor == QDF_GLOBAL_MONITOR_MODE) {
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_DEBUG,
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_INFO,
"%s: Poll mode", __func__);
return dp_soc_interrupt_attach_poll(txrx_soc);
} else {
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_DEBUG,
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_INFO,
"%s: Interrupt mode", __func__);
return dp_soc_interrupt_attach(txrx_soc);
}

View File

@@ -97,7 +97,7 @@ QDF_STATUS dp_rx_buffers_replenish(struct dp_soc *dp_soc, uint32_t mac_id,
rxdma_srng = dp_rxdma_srng->hal_srng;
if (!rxdma_srng) {
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR,
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_DEBUG,
"rxdma srng not initialized");
DP_STATS_INC(dp_pdev, replenish.rxdma_err, num_req_buffers);
return QDF_STATUS_E_FAILURE;
@@ -201,7 +201,7 @@ QDF_STATUS dp_rx_buffers_replenish(struct dp_soc *dp_soc, uint32_t mac_id,
(*desc_list)->rx_desc.in_use = 1;
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_DEBUG,
"rx_netbuf=%pK, buf=%pK, paddr=0x%llx, cookie=%d\n",
"rx_netbuf=%pK, buf=%pK, paddr=0x%llx, cookie=%d",
rx_netbuf, qdf_nbuf_data(rx_netbuf),
(unsigned long long)paddr, (*desc_list)->rx_desc.cookie);

View File

@@ -141,7 +141,7 @@ dp_rx_mon_mpdu_pop(struct dp_soc *soc, uint32_t mac_id,
uint32_t msdu_ppdu_id, msdu_cnt, last_ppdu_id;
uint8_t *data;
uint32_t i;
uint32_t total_frag_len, frag_len;
uint32_t total_frag_len = 0, frag_len = 0;
bool is_frag, is_first_msdu;
msdu = 0;
@@ -179,7 +179,7 @@ dp_rx_mon_mpdu_pop(struct dp_soc *soc, uint32_t mac_id,
QDF_TRACE(QDF_MODULE_ID_DP,
QDF_TRACE_LEVEL_DEBUG,
"[%s][%d] msdu_nbuf=%pK, data=%pK\n",
"[%s][%d] msdu_nbuf=%pK, data=%pK",
__func__, __LINE__, msdu, data);
rx_desc_tlv = HAL_RX_MON_DEST_GET_DESC(data);
@@ -192,7 +192,7 @@ dp_rx_mon_mpdu_pop(struct dp_soc *soc, uint32_t mac_id,
QDF_TRACE(QDF_MODULE_ID_DP,
QDF_TRACE_LEVEL_DEBUG,
"[%s][%d] i=%d, ppdu_id=%x, msdu_ppdu_id=%x\n",
"[%s][%d] i=%d, ppdu_id=%x, msdu_ppdu_id=%x",
__func__, __LINE__, i, *ppdu_id, msdu_ppdu_id);
if (*ppdu_id > msdu_ppdu_id)
@@ -233,6 +233,10 @@ dp_rx_mon_mpdu_pop(struct dp_soc *soc, uint32_t mac_id,
is_frag = false;
msdu_cnt--;
}
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_DEBUG,
"%s total_len %u frag_len %u flags %u",
__func__, total_frag_len, frag_len,
msdu_list.msdu_info[i].msdu_flags);
rx_pkt_offset = HAL_RX_MON_HW_RX_DESC_SIZE();
/*
@@ -258,12 +262,12 @@ dp_rx_mon_mpdu_pop(struct dp_soc *soc, uint32_t mac_id,
if (!hal_rx_attn_msdu_done_get(rx_desc_tlv)) {
QDF_TRACE(QDF_MODULE_ID_DP,
QDF_TRACE_LEVEL_DEBUG,
QDF_TRACE_LEVEL_ERROR,
"%s:%d: Pkt Desc\n",
__func__, __LINE__);
QDF_TRACE_HEX_DUMP(QDF_MODULE_ID_DP,
QDF_TRACE_LEVEL_DEBUG,
QDF_TRACE_LEVEL_ERROR,
rx_desc_tlv, 128);
qdf_assert_always(0);
@@ -273,13 +277,10 @@ dp_rx_mon_mpdu_pop(struct dp_soc *soc, uint32_t mac_id,
QDF_TRACE(QDF_MODULE_ID_DP,
QDF_TRACE_LEVEL_DEBUG,
"rx_pkt_offset=%d, \
l2_hdr_offset=%d, msdu_len=%d, \
addr=%pK\n",
rx_pkt_offset,
l2_hdr_offset,
"%s: rx_pkt_offset=%d, l2_hdr_offset=%d, msdu_len=%d, addr=%p skb->len %lu",
__func__, rx_pkt_offset, l2_hdr_offset,
msdu_list.msdu_info[i].msdu_len,
qdf_nbuf_data(msdu));
qdf_nbuf_data(msdu), qdf_nbuf_len(msdu));
if (*head_msdu == NULL)
*head_msdu = msdu;
@@ -321,7 +322,6 @@ void dp_rx_msdus_set_payload(qdf_nbuf_t msdu)
rx_pkt_offset = HAL_RX_MON_HW_RX_DESC_SIZE();
l2_hdr_offset = hal_rx_msdu_end_l3_hdr_padding_get(data);
qdf_nbuf_pull_head(msdu, rx_pkt_offset + l2_hdr_offset);
}
static inline
@@ -344,6 +344,7 @@ qdf_nbuf_t dp_rx_mon_restitch_mpdu_from_msdus(struct dp_soc *soc,
/* The nbuf has been pulled just beyond the status and points to the
* payload
*/
msdu_orig = head_msdu;
rx_desc = qdf_nbuf_data(msdu_orig);
@@ -374,11 +375,14 @@ qdf_nbuf_t dp_rx_mon_restitch_mpdu_from_msdus(struct dp_soc *soc,
/* Note that this path might suffer from headroom unavailabilty
* - but the RX status is usually enough
*/
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_DEBUG,
"[%s][%d] decap format raw\n", __func__, __LINE__);
dp_rx_msdus_set_payload(head_msdu);
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_DEBUG,
"[%s][%d] decap format raw head %pK head->next %pK last_msdu %pK last_msdu->next %pK",
__func__, __LINE__, head_msdu, head_msdu->next,
last_msdu, last_msdu->next);
mpdu_buf = head_msdu;
if (!mpdu_buf)
@@ -432,7 +436,8 @@ qdf_nbuf_t dp_rx_mon_restitch_mpdu_from_msdus(struct dp_soc *soc,
hdr_desc = HAL_RX_DESC_GET_80211_HDR(rx_desc);
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_DEBUG,
"[%s][%d] decap format not raw\n", __func__, __LINE__);
"[%s][%d] decap format not raw",
__func__, __LINE__);
/* Base size */
@@ -590,16 +595,21 @@ mpdu_stitch_done:
rx_status->rs_tstamp.tsf = rx_desc->ppdu_end.tsf_timestamp;
#endif
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_DEBUG,
"%s %d mpdu_buf %pK mpdu_buf->len %u",
__func__, __LINE__,
mpdu_buf, mpdu_buf->len);
return mpdu_buf;
mpdu_stitch_fail:
if ((mpdu_buf) && (decap_format != HAL_HW_RX_DECAP_FORMAT_RAW)) {
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR,
"%s mpdu_stitch_fail mpdu_buf %pK",
__func__, mpdu_buf);
/* Free the head buffer */
qdf_nbuf_free(mpdu_buf);
}
return NULL;
}
/**
@@ -653,6 +663,10 @@ QDF_STATUS dp_rx_mon_deliver(struct dp_soc *soc, uint32_t mac_id,
pdev->monitor_vdev->osif_rx_mon(
pdev->monitor_vdev->osif_vdev, mon_mpdu, NULL);
} else {
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR,
"[%s][%d] mon_mpdu=%p pdev->monitor_vdev %p osif_vdev %p",
__func__, __LINE__, mon_mpdu, pdev->monitor_vdev,
pdev->monitor_vdev->osif_vdev);
goto mon_deliver_fail;
}
@@ -663,8 +677,9 @@ mon_deliver_fail:
while (mon_skb) {
skb_next = qdf_nbuf_next(mon_skb);
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_DEBUG,
"[%s][%d] mon_skb=%pK\n", __func__, __LINE__, mon_skb);
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR,
"[%s][%d] mon_skb=%p len %u", __func__, __LINE__,
mon_skb, mon_skb->len);
qdf_nbuf_free(mon_skb);
mon_skb = skb_next;
@@ -738,6 +753,10 @@ void dp_rx_mon_dest_process(struct dp_soc *soc, uint32_t mac_id, uint32_t quota)
sizeof(pdev->ppdu_info.rx_status));
pdev->ppdu_info.com_info.last_ppdu_id =
pdev->ppdu_info.com_info.ppdu_id;
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_DEBUG,
"%s %d ppdu_id %x != ppdu_info.com_info .ppdu_id %x",
__func__, __LINE__,
ppdu_id, pdev->ppdu_info.com_info.ppdu_id);
break;
}
@@ -775,7 +794,7 @@ dp_rx_pdev_mon_buf_attach(struct dp_pdev *pdev) {
rx_desc_pool = &soc->rx_desc_mon[pdev_id];
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_INFO_LOW,
"%s: Mon RX Desc Pool[%d] allocation size=%d\n"
"%s: Mon RX Desc Pool[%d] allocation size=%d"
, __func__, pdev_id, rxdma_entries*3);
status = dp_rx_desc_pool_alloc(soc, pdev_id,
@@ -787,7 +806,7 @@ dp_rx_pdev_mon_buf_attach(struct dp_pdev *pdev) {
}
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_INFO_LOW,
"%s: Mon RX Buffers Replenish pdev_id=%d\n",
"%s: Mon RX Buffers Replenish pdev_id=%d",
__func__, pdev_id);
status = dp_rx_buffers_replenish(soc, pdev_id, rxdma_srng, rx_desc_pool,

View File

@@ -403,7 +403,7 @@ dp_rx_mon_status_srng_process(struct dp_soc *soc, uint32_t mac_id,
if (!mon_status_srng || !hal_srng_initialized(mon_status_srng)) {
QDF_TRACE(QDF_MODULE_ID_TXRX, QDF_TRACE_LEVEL_ERROR,
"%s %d : HAL Monitor Destination Ring Init Failed -- %pK\n",
"%s %d : HAL Monitor Status Ring Init Failed -- %pK\n",
__func__, __LINE__, mon_status_srng);
return work_done;
}

View File

@@ -486,8 +486,8 @@ hal_rx_status_get_tlv_info(void *rx_tlv, struct hal_rx_ppdu_info *ppdu_info)
switch (tlv_tag) {
case WIFIRX_PPDU_START_E:
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_INFO,
"[%s][%d] ppdu_start_e len=%d\n",
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_DEBUG,
"[%s][%d] ppdu_start_e len=%d",
__func__, __LINE__, tlv_len);
ppdu_info->com_info.ppdu_id =
HAL_RX_GET(rx_tlv, RX_PPDU_START_0,
@@ -505,8 +505,8 @@ hal_rx_status_get_tlv_info(void *rx_tlv, struct hal_rx_ppdu_info *ppdu_info)
break;
case WIFIRX_PPDU_END_E:
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_INFO,
"[%s][%d] ppdu_end_e len=%d\n",
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_DEBUG,
"[%s][%d] ppdu_end_e len=%d",
__func__, __LINE__, tlv_len);
/* This is followed by sub-TLVs of PPDU_END */
@@ -988,8 +988,8 @@ hal_rx_status_get_tlv_info(void *rx_tlv, struct hal_rx_ppdu_info *ppdu_info)
break;
}
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_INFO,
"%s TLV type: %d, TLV len:%d\n",
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_DEBUG,
"%s TLV type: %d, TLV len:%d",
__func__, tlv_tag, tlv_len);
return HAL_TLV_STATUS_PPDU_NOT_DONE;