qcacld-3.0: refine pktlog enable logic in KPI test

PKTLOG can be enabled from both 802.11 and WEXT, customer
integrates pktlog ctrl in script and is toggled frequently.
This leads host pktlog status variable and FW status out of
sync. Host bus vote logic need disable pktlog when TPUT is
high, based on host status. At last, it will not take effect,
KPI continues dropped by PKTLOG.

Change-Id: Ifad7b53060b6046361621bf927c99b6b66e0c278
CRs-Fixed: 2715362
这个提交包含在:
Yu Tian
2020-06-18 11:11:46 +08:00
提交者 nshrivas
父节点 ee0a4c12c9
当前提交 8b371301f4
修改 2 个文件,包含 25 行新增18 行删除

查看文件

@@ -10064,13 +10064,15 @@ static int __wlan_hdd_cfg80211_wifi_logger_start(struct wiphy *wiphy,
return 0; return 0;
} }
if (hdd_ctx->is_pktlog_enabled && if (start_log.ring_id == RING_ID_PER_PACKET_STATS) {
(start_log.verbose_level == WLAN_LOG_LEVEL_ACTIVE)) if (hdd_ctx->is_pktlog_enabled &&
return 0; (start_log.verbose_level == WLAN_LOG_LEVEL_ACTIVE))
return 0;
if ((!hdd_ctx->is_pktlog_enabled) && if ((!hdd_ctx->is_pktlog_enabled) &&
(start_log.verbose_level != WLAN_LOG_LEVEL_ACTIVE)) (start_log.verbose_level != WLAN_LOG_LEVEL_ACTIVE))
return 0; return 0;
}
mac_handle = hdd_ctx->mac_handle; mac_handle = hdd_ctx->mac_handle;
status = sme_wifi_start_logger(mac_handle, start_log); status = sme_wifi_start_logger(mac_handle, start_log);
@@ -10080,10 +10082,12 @@ static int __wlan_hdd_cfg80211_wifi_logger_start(struct wiphy *wiphy,
return -EINVAL; return -EINVAL;
} }
if (start_log.verbose_level != WLAN_LOG_LEVEL_ACTIVE) if (start_log.ring_id == RING_ID_PER_PACKET_STATS) {
hdd_ctx->is_pktlog_enabled = true; if (start_log.verbose_level == WLAN_LOG_LEVEL_ACTIVE)
else hdd_ctx->is_pktlog_enabled = true;
hdd_ctx->is_pktlog_enabled = false; else
hdd_ctx->is_pktlog_enabled = false;
}
return 0; return 0;
} }

查看文件

@@ -9136,6 +9136,7 @@ static void hdd_pld_request_bus_bandwidth(struct hdd_context *hdd_ctx,
if (hdd_ctx->cur_vote_level != next_vote_level) { if (hdd_ctx->cur_vote_level != next_vote_level) {
hdd_debug("BW Vote level %d, tx_packets: %lld, rx_packets: %lld", hdd_debug("BW Vote level %d, tx_packets: %lld, rx_packets: %lld",
next_vote_level, tx_packets, rx_packets); next_vote_level, tx_packets, rx_packets);
hdd_ctx->cur_vote_level = next_vote_level; hdd_ctx->cur_vote_level = next_vote_level;
vote_level_change = true; vote_level_change = true;
@@ -9194,14 +9195,16 @@ static void hdd_pld_request_bus_bandwidth(struct hdd_context *hdd_ctx,
else else
hdd_disable_rx_ol_for_low_tput(hdd_ctx, false); hdd_disable_rx_ol_for_low_tput(hdd_ctx, false);
if (hdd_ctx->is_pktlog_enabled) { /*
if (next_vote_level >= PLD_BUS_WIDTH_HIGH) * force disable pktlog and only re-enable based
hdd_pktlog_enable_disable(hdd_ctx, false, * on ini config
0, 0); */
else if (next_vote_level >= PLD_BUS_WIDTH_HIGH)
hdd_pktlog_enable_disable(hdd_ctx, true, hdd_pktlog_enable_disable(hdd_ctx, false,
0, 0); 0, 0);
} else if (cds_is_packet_log_enabled())
hdd_pktlog_enable_disable(hdd_ctx, true,
0, 0);
} }
qdf_dp_trace_apply_tput_policy(dptrace_high_tput_req); qdf_dp_trace_apply_tput_policy(dptrace_high_tput_req);