qcacmn: Add a flag to enable/disable per-packet sync of DP stats

Currently all Host collected DP statitics are synced to upper layers
on per-packet basis; This is causing significant CPU overhead.
Add a flag which can be controlled through iwpriv to enable/disable
updating of these statistics from DP to higher layers

Change-Id: I983c6d91803c83c1efd49c5535769a0c10fbc9b5
CRs-Fixed: 2064113
Цей коміт міститься в:
Pamidipati, Vijay
2017-06-21 00:31:06 +05:30
зафіксовано snandini
джерело 45b1df25fc
коміт be379457e6
4 змінених файлів з 46 додано та 9 видалено

Переглянути файл

@@ -1123,6 +1123,8 @@ done:
continue;
}
pdev = vdev->pdev;
sgi = hal_rx_msdu_start_sgi_get(rx_tlv_hdr);
mcs = hal_rx_msdu_start_rate_mcs_get(rx_tlv_hdr);
tid = hal_rx_mpdu_start_tid_get(rx_tlv_hdr);
@@ -1279,10 +1281,12 @@ done:
DP_STATS_INCC_PKT(peer, rx.multicast, 1, pkt_len,
hal_rx_msdu_end_da_is_mcbc_get(
rx_tlv_hdr));
DP_STATS_INC_PKT(peer, rx.to_stack, 1,
pkt_len);
if (hal_rx_attn_first_mpdu_get(rx_tlv_hdr)) {
if ((pdev->enhanced_stats_en) &&
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,
@@ -1302,7 +1306,7 @@ done:
}
if (qdf_unlikely(vdev->rx_decap_type == htt_cmn_pkt_type_raw) ||
(vdev->rx_decap_type == htt_cmn_pkt_type_native_wifi))
(vdev->rx_decap_type == htt_cmn_pkt_type_native_wifi))
dp_rx_deliver_raw(vdev, deliver_list_head);
else if (qdf_likely(vdev->osif_rx) && deliver_list_head)
vdev->osif_rx(vdev->osif_vdev, deliver_list_head);