From 50d4dc76459bb239a56d3f0a5ac1290648d3fd41 Mon Sep 17 00:00:00 2001 From: Abhinav Kumar Date: Fri, 15 Jun 2018 16:35:50 +0530 Subject: [PATCH] qcacld-3.0: Fix high latency during BTM roaming While processing the WMA_ROAM_OFFLOAD_SYNCH_IND event, The driver takes nearly 150 to 200 msec time to just write fatal, error and info messages to the kmsg log buffer. Also to get tx power supplicant runs another thread while roaming. These cause more latency(300ms) to send WMA_ROAM_OFFLOAD_SYNCH_CNF message to fw. To decrease roam latency, the driver should write the only necessary error message to kmsg buffer. The fix is to change irrelevant fatal, error and info message type to debug add a check in __wlan_hdd_cfg80211_get_txpower to reject the request to get Tx power while roaming in progress otherwise driver will process this and will increase the roaming latency. Change-Id: I6c31637f21991b5b29c1e2dd2c2935ae7d4fc3d0 CRs-Fixed: 2251824 --- core/cds/src/cds_utils.c | 2 +- core/dp/txrx/ol_txrx.c | 4 ++-- core/hdd/src/wlan_hdd_assoc.c | 2 +- core/hdd/src/wlan_hdd_cfg80211.c | 2 +- core/hdd/src/wlan_hdd_power.c | 5 +++++ core/mac/src/pe/lim/lim_process_assoc_rsp_frame.c | 2 +- core/sme/src/csr/csr_api_roam.c | 2 +- core/wma/src/wma_dev_if.c | 2 +- core/wma/src/wma_scan_roam.c | 2 +- 9 files changed, 14 insertions(+), 9 deletions(-) diff --git a/core/cds/src/cds_utils.c b/core/cds/src/cds_utils.c index e73a3b1056ea..2de74afa8aaa 100644 --- a/core/cds/src/cds_utils.c +++ b/core/cds/src/cds_utils.c @@ -731,7 +731,7 @@ void cds_copy_hlp_info(struct qdf_mac_addr *input_dst_mac, uint8_t *output_hlp_data) { if (!input_hlp_data_len) { - cds_err("Input HLP data len zero\n"); + cds_debug("Input HLP data len zero\n"); return; } diff --git a/core/dp/txrx/ol_txrx.c b/core/dp/txrx/ol_txrx.c index 82673345732e..0b1761825c85 100644 --- a/core/dp/txrx/ol_txrx.c +++ b/core/dp/txrx/ol_txrx.c @@ -3799,7 +3799,7 @@ int ol_txrx_peer_release_ref(ol_txrx_peer_handle peer, &peer->access_list[debug_id]); qdf_spin_unlock_bh(&pdev->peer_ref_mutex); if (!ref_silent) - ol_txrx_info_high("[%d][%d]: ref delete peer %pK ref_cnt -> %d", + ol_txrx_dbg("[%d][%d]: ref delete peer %pK ref_cnt -> %d", debug_id, access_list, peer, rc); @@ -3936,7 +3936,7 @@ static void ol_txrx_peer_detach(void *ppeer, uint32_t bitmap) /* debug print to dump rx reorder state */ /* htt_rx_reorder_log_print(vdev->pdev->htt_pdev); */ - QDF_TRACE(QDF_MODULE_ID_TXRX, QDF_TRACE_LEVEL_INFO, + QDF_TRACE(QDF_MODULE_ID_TXRX, QDF_TRACE_LEVEL_DEBUG, "%s:peer %pK (%02x:%02x:%02x:%02x:%02x:%02x)", __func__, peer, peer->mac_addr.raw[0], peer->mac_addr.raw[1], diff --git a/core/hdd/src/wlan_hdd_assoc.c b/core/hdd/src/wlan_hdd_assoc.c index 315c78678855..77f81b40d666 100644 --- a/core/hdd/src/wlan_hdd_assoc.c +++ b/core/hdd/src/wlan_hdd_assoc.c @@ -1347,7 +1347,7 @@ static void hdd_send_association_event(struct net_device *dev, ucfg_p2p_status_connect(adapter->hdd_vdev); - pr_info("wlan: " MAC_ADDRESS_STR " connected to " + hdd_info("wlan: " MAC_ADDRESS_STR " connected to " MAC_ADDRESS_STR "\n", MAC_ADDR_ARRAY(adapter->mac_addr.bytes), MAC_ADDR_ARRAY(wrqu.ap_addr.sa_data)); diff --git a/core/hdd/src/wlan_hdd_cfg80211.c b/core/hdd/src/wlan_hdd_cfg80211.c index 1c8977868844..8e6d0b051357 100644 --- a/core/hdd/src/wlan_hdd_cfg80211.c +++ b/core/hdd/src/wlan_hdd_cfg80211.c @@ -12707,7 +12707,7 @@ static int __wlan_hdd_cfg80211_set_nud_stats(struct wiphy *wiphy, } } - hdd_info("STATS_SET_START Received flag %d!", arp_stats_params.flag); + hdd_debug("STATS_SET_START Received flag %d!", arp_stats_params.flag); arp_stats_params.vdev_id = adapter->session_id; diff --git a/core/hdd/src/wlan_hdd_power.c b/core/hdd/src/wlan_hdd_power.c index 5d7a6ade7399..fd32c85a1622 100644 --- a/core/hdd/src/wlan_hdd_power.c +++ b/core/hdd/src/wlan_hdd_power.c @@ -2119,6 +2119,11 @@ static int __wlan_hdd_cfg80211_get_txpower(struct wiphy *wiphy, return -EINVAL; } + if (sta_ctx->hdd_reassoc_scenario) { + hdd_debug("Roaming is in progress, rej this req"); + return -EINVAL; + } + mutex_lock(&hdd_ctx->iface_change_lock); if (hdd_ctx->driver_status != DRIVER_MODULES_ENABLED) { mutex_unlock(&hdd_ctx->iface_change_lock); diff --git a/core/mac/src/pe/lim/lim_process_assoc_rsp_frame.c b/core/mac/src/pe/lim/lim_process_assoc_rsp_frame.c index 9d6e894939c6..9b2caa125572 100644 --- a/core/mac/src/pe/lim/lim_process_assoc_rsp_frame.c +++ b/core/mac/src/pe/lim/lim_process_assoc_rsp_frame.c @@ -527,7 +527,7 @@ lim_process_assoc_rsp_frame(tpAniSirGlobal mac_ctx, return; } - pe_info("received Re/Assoc: %d resp on sessionid: %d systemrole: %d" + pe_debug("received Re/Assoc: %d resp on sessionid: %d systemrole: %d" " and mlmstate: %d RSSI: %d from "MAC_ADDRESS_STR, subtype, session_entry->peSessionId, GET_LIM_SYSTEM_ROLE(session_entry), session_entry->limMlmState, diff --git a/core/sme/src/csr/csr_api_roam.c b/core/sme/src/csr/csr_api_roam.c index b911fcba7367..bf937e2c07b6 100644 --- a/core/sme/src/csr/csr_api_roam.c +++ b/core/sme/src/csr/csr_api_roam.c @@ -4297,7 +4297,7 @@ QDF_STATUS csr_roam_call_callback(tpAniSirGlobal pMac, uint32_t sessionId, if (eCSR_ROAM_ASSOCIATION_COMPLETION == u1 && eCSR_ROAM_RESULT_ASSOCIATED == u2 && roam_info) { - sme_info("Assoc complete result: %d status: %d reason: %d", + sme_debug("Assoc complete result: %d status: %d reason: %d", u2, roam_info->statusCode, roam_info->reasonCode); beacon_ies = qdf_mem_malloc(sizeof(tDot11fBeaconIEs)); if ((NULL != beacon_ies) && (NULL != roam_info->pBssDesc)) { diff --git a/core/wma/src/wma_dev_if.c b/core/wma/src/wma_dev_if.c index 7f79ac3fe3ef..d78c34efa8de 100644 --- a/core/wma/src/wma_dev_if.c +++ b/core/wma/src/wma_dev_if.c @@ -1743,7 +1743,7 @@ QDF_STATUS wma_create_peer(tp_wma_handle wma, struct cdp_pdev *pdev, wma->interfaces[vdev_id].peer_count); if (roam_synch_in_progress) { - WMA_LOGI("%s: LFR3: Created peer %pK with peer_addr %pM vdev_id %d, peer_count - %d", + WMA_LOGD("%s: LFR3: Created peer %pK with peer_addr %pM vdev_id %d, peer_count - %d", __func__, peer, peer_addr, vdev_id, wma->interfaces[vdev_id].peer_count); return QDF_STATUS_SUCCESS; diff --git a/core/wma/src/wma_scan_roam.c b/core/wma/src/wma_scan_roam.c index d8eece951d92..f8b145088e12 100644 --- a/core/wma/src/wma_scan_roam.c +++ b/core/wma/src/wma_scan_roam.c @@ -2297,7 +2297,7 @@ int wma_roam_synch_event_handler(void *handle, uint8_t *event, __func__); goto cleanup_label; } - WMA_LOGI("LFR3: Received WMA_ROAM_OFFLOAD_SYNCH_IND"); + WMA_LOGD("LFR3: Received WMA_ROAM_OFFLOAD_SYNCH_IND"); /* * All below length fields are unsigned and hence positive numbers.