Procházet zdrojové kódy

qcacmn: Fix for ampdu aggregation in host statistics

Ampdu count is populated in pdev
but zeroed before printing. Fix it to
be populated in peer and aggregated
in pdev before printing

Change-Id: I51d8f1968a87c0b9dbf53928acd1bbef45acc7ec
CRs-Fixed: 2025785
Venkata Sharath Chandra Manchala před 8 roky
rodič
revize
87686d9a2f
2 změnil soubory, kde provedl 6 přidání a 5 odebrání
  1. 2 1
      dp/wifi3.0/dp_main.c
  2. 4 4
      dp/wifi3.0/dp_rx.c

+ 2 - 1
dp/wifi3.0/dp_main.c

@@ -2140,6 +2140,7 @@ void dp_aggregate_vdev_stats(struct dp_vdev *vdev)
 		DP_STATS_AGGR(vdev, peer, rx.err.mic_err);
 		DP_STATS_AGGR(vdev, peer, rx.err.decrypt_err);
 		DP_STATS_AGGR(vdev, peer, rx.non_ampdu_cnt);
+		DP_STATS_AGGR(vdev, peer, rx.ampdu_cnt);
 		DP_STATS_AGGR(vdev, peer, rx.non_amsdu_cnt);
 		DP_STATS_AGGR(vdev, peer, rx.amsdu_cnt);
 		DP_STATS_AGGR_PKT(vdev, peer, rx.to_stack);
@@ -2526,7 +2527,7 @@ dp_print_rx_rates(struct dp_vdev *vdev)
 			pdev->stats.rx.reception_type[2],
 			pdev->stats.rx.reception_type[3]);
 	DP_TRACE(NONE, "Aggregation:\n");
-	DP_TRACE(NONE, "Number of Msdu's Part of Ampdu = %d",
+	DP_TRACE(NONE, "Number of Msdu's Part of Ampdus = %d",
 			pdev->stats.rx.ampdu_cnt);
 	DP_TRACE(NONE, "Number of Msdu's With No Mpdu Level Aggregation : %d",
 			pdev->stats.rx.non_ampdu_cnt);

+ 4 - 4
dp/wifi3.0/dp_rx.c

@@ -617,8 +617,8 @@ dp_rx_process(struct dp_soc *soc, void *hal_ring, uint32_t quota)
 
 		ampdu_flag = (mpdu_desc_info.mpdu_flags &
 				HAL_MPDU_F_AMPDU_FLAG);
-		DP_STATS_INCC(vdev->pdev, rx.ampdu_cnt, 1, ampdu_flag);
-		DP_STATS_INCC(vdev->pdev, rx.non_ampdu_cnt, 1, !(ampdu_flag));
+		DP_STATS_INCC(peer, rx.ampdu_cnt, 1, ampdu_flag);
+		DP_STATS_INCC(peer, rx.non_ampdu_cnt, 1, !(ampdu_flag));
 
 		hal_rx_msdu_desc_info_get(ring_desc, &msdu_desc_info);
 		amsdu_flag = ((msdu_desc_info.msdu_flags &
@@ -626,9 +626,9 @@ dp_rx_process(struct dp_soc *soc, void *hal_ring, uint32_t quota)
 				(msdu_desc_info.msdu_flags &
 					HAL_MSDU_F_LAST_MSDU_IN_MPDU));
 
-		DP_STATS_INCC(vdev->pdev, rx.non_amsdu_cnt, 1,
+		DP_STATS_INCC(peer, rx.non_amsdu_cnt, 1,
 				amsdu_flag);
-		DP_STATS_INCC(vdev->pdev, rx.amsdu_cnt, 1,
+		DP_STATS_INCC(peer, rx.amsdu_cnt, 1,
 				!(amsdu_flag));
 
 		qdf_nbuf_queue_add(&vdev->rxq, rx_desc->nbuf);