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,13 +938,13 @@ static QDF_STATUS dp_soc_interrupt_attach_wrapper(void *txrx_soc)
if (!(soc->wlan_cfg_ctx->napi_enabled) || if (!(soc->wlan_cfg_ctx->napi_enabled) ||
con_mode_monitor == QDF_GLOBAL_MONITOR_MODE) { 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__); "%s: Poll mode", __func__);
return dp_soc_interrupt_attach_poll(txrx_soc); return dp_soc_interrupt_attach_poll(txrx_soc);
} else { } 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__); "%s: Interrupt mode", __func__);
return dp_soc_interrupt_attach(txrx_soc); return dp_soc_interrupt_attach(txrx_soc);
} }
} }

View File

@@ -97,8 +97,8 @@ QDF_STATUS dp_rx_buffers_replenish(struct dp_soc *dp_soc, uint32_t mac_id,
rxdma_srng = dp_rxdma_srng->hal_srng; rxdma_srng = dp_rxdma_srng->hal_srng;
if (!rxdma_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"); "rxdma srng not initialized");
DP_STATS_INC(dp_pdev, replenish.rxdma_err, num_req_buffers); DP_STATS_INC(dp_pdev, replenish.rxdma_err, num_req_buffers);
return QDF_STATUS_E_FAILURE; 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; (*desc_list)->rx_desc.in_use = 1;
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_DEBUG, 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), rx_netbuf, qdf_nbuf_data(rx_netbuf),
(unsigned long long)paddr, (*desc_list)->rx_desc.cookie); (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; uint32_t msdu_ppdu_id, msdu_cnt, last_ppdu_id;
uint8_t *data; uint8_t *data;
uint32_t i; 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; bool is_frag, is_first_msdu;
msdu = 0; 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(QDF_MODULE_ID_DP,
QDF_TRACE_LEVEL_DEBUG, QDF_TRACE_LEVEL_DEBUG,
"[%s][%d] msdu_nbuf=%pK, data=%pK\n", "[%s][%d] msdu_nbuf=%pK, data=%pK",
__func__, __LINE__, msdu, data); __func__, __LINE__, msdu, data);
rx_desc_tlv = HAL_RX_MON_DEST_GET_DESC(data); rx_desc_tlv = HAL_RX_MON_DEST_GET_DESC(data);
@@ -191,9 +191,9 @@ dp_rx_mon_mpdu_pop(struct dp_soc *soc, uint32_t mac_id,
} }
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE(QDF_MODULE_ID_DP,
QDF_TRACE_LEVEL_DEBUG, 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); __func__, __LINE__, i, *ppdu_id, msdu_ppdu_id);
if (*ppdu_id > msdu_ppdu_id) if (*ppdu_id > msdu_ppdu_id)
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE(QDF_MODULE_ID_DP,
@@ -233,6 +233,10 @@ dp_rx_mon_mpdu_pop(struct dp_soc *soc, uint32_t mac_id,
is_frag = false; is_frag = false;
msdu_cnt--; 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(); rx_pkt_offset = HAL_RX_MON_HW_RX_DESC_SIZE();
/* /*
@@ -245,7 +249,7 @@ dp_rx_mon_mpdu_pop(struct dp_soc *soc, uint32_t mac_id,
hal_rx_msdu_end_l3_hdr_padding_get(data); hal_rx_msdu_end_l3_hdr_padding_get(data);
rx_buf_size = rx_pkt_offset + l2_hdr_offset rx_buf_size = rx_pkt_offset + l2_hdr_offset
+ frag_len; + frag_len;
qdf_nbuf_set_pktlen(msdu, rx_buf_size); qdf_nbuf_set_pktlen(msdu, rx_buf_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)) { if (!hal_rx_attn_msdu_done_get(rx_desc_tlv)) {
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE(QDF_MODULE_ID_DP,
QDF_TRACE_LEVEL_DEBUG, QDF_TRACE_LEVEL_ERROR,
"%s:%d: Pkt Desc\n", "%s:%d: Pkt Desc\n",
__func__, __LINE__); __func__, __LINE__);
QDF_TRACE_HEX_DUMP(QDF_MODULE_ID_DP, QDF_TRACE_HEX_DUMP(QDF_MODULE_ID_DP,
QDF_TRACE_LEVEL_DEBUG, QDF_TRACE_LEVEL_ERROR,
rx_desc_tlv, 128); rx_desc_tlv, 128);
qdf_assert_always(0); qdf_assert_always(0);
@@ -272,14 +276,11 @@ dp_rx_mon_mpdu_pop(struct dp_soc *soc, uint32_t mac_id,
rx_bufs_used++; rx_bufs_used++;
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE(QDF_MODULE_ID_DP,
QDF_TRACE_LEVEL_DEBUG, QDF_TRACE_LEVEL_DEBUG,
"rx_pkt_offset=%d, \ "%s: rx_pkt_offset=%d, l2_hdr_offset=%d, msdu_len=%d, addr=%p skb->len %lu",
l2_hdr_offset=%d, msdu_len=%d, \ __func__, rx_pkt_offset, l2_hdr_offset,
addr=%pK\n", msdu_list.msdu_info[i].msdu_len,
rx_pkt_offset, qdf_nbuf_data(msdu), qdf_nbuf_len(msdu));
l2_hdr_offset,
msdu_list.msdu_info[i].msdu_len,
qdf_nbuf_data(msdu));
if (*head_msdu == NULL) if (*head_msdu == NULL)
*head_msdu = msdu; *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(); rx_pkt_offset = HAL_RX_MON_HW_RX_DESC_SIZE();
l2_hdr_offset = hal_rx_msdu_end_l3_hdr_padding_get(data); l2_hdr_offset = hal_rx_msdu_end_l3_hdr_padding_get(data);
qdf_nbuf_pull_head(msdu, rx_pkt_offset + l2_hdr_offset); qdf_nbuf_pull_head(msdu, rx_pkt_offset + l2_hdr_offset);
} }
static inline 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 /* The nbuf has been pulled just beyond the status and points to the
* payload * payload
*/ */
msdu_orig = head_msdu; msdu_orig = head_msdu;
rx_desc = qdf_nbuf_data(msdu_orig); 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 /* Note that this path might suffer from headroom unavailabilty
* - but the RX status is usually enough * - 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); 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; mpdu_buf = head_msdu;
if (!mpdu_buf) 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); hdr_desc = HAL_RX_DESC_GET_80211_HDR(rx_desc);
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_DEBUG, 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 */ /* Base size */
@@ -590,16 +595,21 @@ mpdu_stitch_done:
rx_status->rs_tstamp.tsf = rx_desc->ppdu_end.tsf_timestamp; rx_status->rs_tstamp.tsf = rx_desc->ppdu_end.tsf_timestamp;
#endif #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; return mpdu_buf;
mpdu_stitch_fail: mpdu_stitch_fail:
if ((mpdu_buf) && (decap_format != HAL_HW_RX_DECAP_FORMAT_RAW)) { 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 */ /* Free the head buffer */
qdf_nbuf_free(mpdu_buf); qdf_nbuf_free(mpdu_buf);
} }
return NULL; 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_rx_mon(
pdev->monitor_vdev->osif_vdev, mon_mpdu, NULL); pdev->monitor_vdev->osif_vdev, mon_mpdu, NULL);
} else { } 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; goto mon_deliver_fail;
} }
@@ -663,8 +677,9 @@ mon_deliver_fail:
while (mon_skb) { while (mon_skb) {
skb_next = qdf_nbuf_next(mon_skb); skb_next = qdf_nbuf_next(mon_skb);
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_DEBUG, QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR,
"[%s][%d] mon_skb=%pK\n", __func__, __LINE__, mon_skb); "[%s][%d] mon_skb=%p len %u", __func__, __LINE__,
mon_skb, mon_skb->len);
qdf_nbuf_free(mon_skb); qdf_nbuf_free(mon_skb);
mon_skb = skb_next; 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)); sizeof(pdev->ppdu_info.rx_status));
pdev->ppdu_info.com_info.last_ppdu_id = pdev->ppdu_info.com_info.last_ppdu_id =
pdev->ppdu_info.com_info.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; break;
} }
@@ -775,8 +794,8 @@ dp_rx_pdev_mon_buf_attach(struct dp_pdev *pdev) {
rx_desc_pool = &soc->rx_desc_mon[pdev_id]; rx_desc_pool = &soc->rx_desc_mon[pdev_id];
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_INFO_LOW, 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); , __func__, pdev_id, rxdma_entries*3);
status = dp_rx_desc_pool_alloc(soc, pdev_id, status = dp_rx_desc_pool_alloc(soc, pdev_id,
rxdma_entries*3, rx_desc_pool); rxdma_entries*3, rx_desc_pool);
@@ -787,8 +806,8 @@ dp_rx_pdev_mon_buf_attach(struct dp_pdev *pdev) {
} }
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_INFO_LOW, 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); __func__, pdev_id);
status = dp_rx_buffers_replenish(soc, pdev_id, rxdma_srng, rx_desc_pool, status = dp_rx_buffers_replenish(soc, pdev_id, rxdma_srng, rx_desc_pool,
rxdma_entries, &desc_list, &tail, rxdma_entries, &desc_list, &tail,

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)) { if (!mon_status_srng || !hal_srng_initialized(mon_status_srng)) {
QDF_TRACE(QDF_MODULE_ID_TXRX, QDF_TRACE_LEVEL_ERROR, 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); __func__, __LINE__, mon_status_srng);
return work_done; 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) { switch (tlv_tag) {
case WIFIRX_PPDU_START_E: case WIFIRX_PPDU_START_E:
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_INFO, QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_DEBUG,
"[%s][%d] ppdu_start_e len=%d\n", "[%s][%d] ppdu_start_e len=%d",
__func__, __LINE__, tlv_len); __func__, __LINE__, tlv_len);
ppdu_info->com_info.ppdu_id = ppdu_info->com_info.ppdu_id =
HAL_RX_GET(rx_tlv, RX_PPDU_START_0, HAL_RX_GET(rx_tlv, RX_PPDU_START_0,
@@ -505,9 +505,9 @@ hal_rx_status_get_tlv_info(void *rx_tlv, struct hal_rx_ppdu_info *ppdu_info)
break; break;
case WIFIRX_PPDU_END_E: case WIFIRX_PPDU_END_E:
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_INFO, QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_DEBUG,
"[%s][%d] ppdu_end_e len=%d\n", "[%s][%d] ppdu_end_e len=%d",
__func__, __LINE__, tlv_len); __func__, __LINE__, tlv_len);
/* This is followed by sub-TLVs of PPDU_END */ /* This is followed by sub-TLVs of PPDU_END */
ppdu_info->rx_status.duration = ppdu_info->rx_status.duration =
@@ -988,9 +988,9 @@ hal_rx_status_get_tlv_info(void *rx_tlv, struct hal_rx_ppdu_info *ppdu_info)
break; break;
} }
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_INFO, QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_DEBUG,
"%s TLV type: %d, TLV len:%d\n", "%s TLV type: %d, TLV len:%d",
__func__, tlv_tag, tlv_len); __func__, tlv_tag, tlv_len);
return HAL_TLV_STATUS_PPDU_NOT_DONE; return HAL_TLV_STATUS_PPDU_NOT_DONE;
} }