qcacmn: Update airtime computation to per AC level

Update airtime computation to per AC level.

Change-Id: Ia8cb890d2f1dc167ec3a2610ff5a70238d55262d
CRs-Fixed: 3281256
This commit is contained in:
Himanshu Batra
2022-09-01 16:15:35 +05:30
committed by Madan Koyyalamudi
parent 6f012336ae
commit 6a5ab907c1
4 changed files with 31 additions and 21 deletions

View File

@@ -2060,7 +2060,7 @@ void dp_peer_update_telemetry_stats(struct dp_peer *peer)
struct dp_pdev *pdev;
struct dp_vdev *vdev;
struct dp_mon_peer *mon_peer = NULL;
uint8_t idx;
uint8_t idx, ac;
vdev = peer->vdev;
if (!vdev)
@@ -2076,14 +2076,16 @@ void dp_peer_update_telemetry_stats(struct dp_peer *peer)
mon_peer->stats.tx.retries);
DP_STATS_INC(pdev, telemetry_stats.tx_mpdu_total,
mon_peer->stats.tx.tx_mpdus_tried);
idx = mon_peer->stats.airtime_consumption.avg_consumption.idx;
mon_peer->stats.airtime_consumption.avg_consumption.avg_consumption_per_sec[idx] =
mon_peer->stats.airtime_consumption.consumption;
mon_peer->stats.airtime_consumption.consumption = 0;
mon_peer->stats.airtime_consumption.avg_consumption.idx++;
if (mon_peer->stats.airtime_consumption.avg_consumption.idx ==
MAX_CONSUMPTION_TIME)
mon_peer->stats.airtime_consumption.avg_consumption.idx = 0;
for (ac = 0; ac < WME_AC_MAX; ac++) {
idx = mon_peer->stats.airtime_consumption[ac].avg_consumption.idx;
mon_peer->stats.airtime_consumption[ac].avg_consumption.avg_consumption_per_sec[idx] =
mon_peer->stats.airtime_consumption[ac].consumption;
mon_peer->stats.airtime_consumption[ac].consumption = 0;
mon_peer->stats.airtime_consumption[ac].avg_consumption.idx++;
if (mon_peer->stats.airtime_consumption[ac].avg_consumption.idx ==
MAX_CONSUMPTION_TIME)
mon_peer->stats.airtime_consumption[ac].avg_consumption.idx = 0;
}
}
}
#else
@@ -4070,12 +4072,14 @@ void dp_ppdu_desc_user_airtime_consumption_update(
struct cdp_tx_completion_ppdu_user *user)
{
struct dp_mon_peer *mon_peer = NULL;
uint8_t ac = 0;
mon_peer = peer->monitor_peer;
if (qdf_unlikely(!mon_peer))
return;
DP_STATS_INC(mon_peer, airtime_consumption.consumption,
ac = TID_TO_WME_AC(user->tid);
DP_STATS_INC(mon_peer, airtime_consumption[ac].consumption,
user->phy_tx_time_us);
}
#else