qcacmn: Add Host Lithium Stats

Add per peer stats
Add support to update APSTATS
Change QDF_TRACE to DP_TRACE for improved readablility

Change-Id: I4be2adf2a1d7f978eb2961a544435d525c97923d
CRs-Fixed: 1114641
This commit is contained in:
Ishank Jain
2017-02-17 15:38:39 +05:30
committad av Sandeep Puligilla
förälder c0ce628e49
incheckning 1e7401cbc7
12 ändrade filer med 1412 tillägg och 571 borttagningar

Visa fil

@@ -64,7 +64,7 @@ QDF_STATUS dp_rx_buffers_replenish(struct dp_soc *dp_soc, uint32_t mac_id,
if (!rxdma_srng) {
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR,
"rxdma srng not initialized");
DP_STATS_INC(dp_pdev, rx.err.rxdma_unitialized, 1);
DP_STATS_INC(dp_pdev, err.rxdma_unitialized, 1);
return QDF_STATUS_E_FAILURE;
}
@@ -83,7 +83,7 @@ QDF_STATUS dp_rx_buffers_replenish(struct dp_soc *dp_soc, uint32_t mac_id,
if (!num_alloc_desc) {
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR,
"no free rx_descs in freelist");
DP_STATS_INC(dp_pdev, rx.err.desc_alloc_fail,
DP_STATS_INC(dp_pdev, err.desc_alloc_fail,
num_alloc_desc);
return QDF_STATUS_E_NOMEM;
}
@@ -142,7 +142,7 @@ QDF_STATUS dp_rx_buffers_replenish(struct dp_soc *dp_soc, uint32_t mac_id,
next = (*desc_list)->next;
(*desc_list)->rx_desc.nbuf = rx_netbuf;
DP_STATS_INC_PKT(dp_pdev, rx.replenished, 1,
DP_STATS_INC_PKT(dp_pdev, replenished, 1,
qdf_nbuf_len(rx_netbuf));
hal_rxdma_buff_addr_info_set(rxdma_ring_entry, paddr,
(*desc_list)->rx_desc.cookie,
@@ -157,7 +157,7 @@ QDF_STATUS dp_rx_buffers_replenish(struct dp_soc *dp_soc, uint32_t mac_id,
"successfully replenished %d buffers", num_req_buffers);
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR,
"%d rx desc added back to free list", num_desc_to_free);
DP_STATS_INC(dp_pdev, rx.buf_freelist, num_desc_to_free);
DP_STATS_INC(dp_pdev, buf_freelist, num_desc_to_free);
/*
* add any available free desc back to the free list
@@ -230,6 +230,8 @@ dp_rx_intrabss_fwd(struct dp_soc *soc,
uint8_t *rx_tlv_hdr,
qdf_nbuf_t nbuf)
{
DP_STATS_INC_PKT(sa_peer, rx.intra_bss, 1,
qdf_nbuf_len(nbuf));
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR,
FL("Intra-BSS forwarding not implemented"));
return false;
@@ -411,6 +413,7 @@ dp_rx_process(struct dp_soc *soc, void *hal_ring, uint32_t quota)
uint8_t mac_id;
uint16_t i, vdev_cnt = 0;
uint32_t ampdu_flag, amsdu_flag;
struct ether_header *eh;
/* Debug -- Remove later */
qdf_assert(soc && hal_ring);
@@ -512,7 +515,7 @@ dp_rx_process(struct dp_soc *soc, void *hal_ring, uint32_t quota)
if (msdu_desc_info.msdu_flags & HAL_MSDU_F_LAST_MSDU_IN_MPDU)
qdf_nbuf_set_chfrag_end(rx_desc->nbuf, 1);
DP_STATS_INC_PKT(vdev->pdev, rx.rcvd_reo, 1,
DP_STATS_INC_PKT(peer, rx.rcvd_reo, 1,
qdf_nbuf_len(rx_desc->nbuf));
ampdu_flag = (mpdu_desc_info.mpdu_flags &
@@ -562,6 +565,7 @@ done:
vdev = vdev_list[i];
while ((nbuf = qdf_nbuf_queue_remove(&vdev->rxq))) {
rx_tlv_hdr = qdf_nbuf_data(nbuf);
eh = (struct ether_header *)qdf_nbuf_data(nbuf);
/*
* Check if DMA completed -- msdu_done is the last bit
@@ -628,10 +632,23 @@ done:
DP_STATS_INC(vdev->pdev,
rx.reception_type[reception_type], 1);
DP_STATS_INCC(vdev->pdev, rx.nss[nss], 1,
((reception_type ==
RECEPTION_TYPE_MU_MIMO) ||
(reception_type ==
RECEPTION_TYPE_MU_OFDMA_MIMO)));
((reception_type == REPT_MU_MIMO) ||
(reception_type == REPT_MU_OFDMA_MIMO))
);
DP_STATS_INC(peer, rx.sgi_count[sgi], 1);
DP_STATS_INC(peer, rx.mcs_count[rate_mcs], 1);
DP_STATS_INCC(peer, rx.err.mic_err, 1,
hal_rx_mpdu_end_mic_err_get(
rx_tlv_hdr));
DP_STATS_INCC(peer, rx.err.decrypt_err, 1,
hal_rx_mpdu_end_decrypt_err_get(
rx_tlv_hdr));
DP_STATS_INC(peer, rx.wme_ac_type[TID_TO_WME_AC(tid)],
1);
DP_STATS_INC(peer, rx.bw[bw], 1);
DP_STATS_INC(peer, rx.reception_type[reception_type],
1);
/*
* HW structures call this L3 header padding --
@@ -693,7 +710,33 @@ done:
DP_RX_LIST_APPEND(deliver_list_head,
deliver_list_tail,
nbuf);
DP_STATS_INC(vdev->pdev, rx.to_stack.num, 1);
DP_STATS_INCC_PKT(peer, rx.multicast, 1, pkt_len,
DP_FRAME_IS_MULTICAST((eh)->ether_dhost
));
DP_STATS_INCC_PKT(peer, rx.unicast, 1, pkt_len,
!(DP_FRAME_IS_MULTICAST(
(eh)->ether_dhost)));
DP_STATS_INC_PKT(peer, rx.to_stack, 1,
pkt_len);
if (hal_rx_attn_first_mpdu_get(rx_tlv_hdr)) {
if (soc->cdp_soc.ol_ops->update_dp_stats)
soc->cdp_soc.ol_ops->update_dp_stats(
vdev->pdev->osif_pdev,
&peer->stats,
peer_id,
UPDATE_PEER_STATS);
dp_aggregate_vdev_stats(peer->vdev);
if (soc->cdp_soc.ol_ops->update_dp_stats)
soc->cdp_soc.ol_ops->update_dp_stats(
vdev->pdev->osif_pdev,
&peer->vdev->stats,
peer->vdev->vdev_id,
UPDATE_VDEV_STATS);
}
}
if (qdf_unlikely(vdev->rx_decap_type == htt_pkt_type_raw))