ソースを参照

qcacld-3.0: Print periodic stats only if roaming not in progress

Roaming is handled by scheduler thread which has lower priority
than kworker thread. Periodic stats are printed in kworker thread.
Since handling roaming is a higher priority job, skip printing
periodic stats so that scheduler thread can be given extra time
slot to process roaming.

Change-Id: I444bdf1df51da2f80111fabd84d19584bd715ae3
CRs-Fixed: 2768360
Ananya Gupta 4 年 前
コミット
822e4f01a2
1 ファイル変更9 行追加3 行削除
  1. 9 3
      core/hdd/src/wlan_hdd_main.c

+ 9 - 3
core/hdd/src/wlan_hdd_main.c

@@ -9871,9 +9871,15 @@ static void hdd_pld_request_bus_bandwidth(struct hdd_context *hdd_ctx,
 			hdd_pm_qos_update_request(hdd_ctx, &pm_qos_cpu_mask);
 	}
 
-	hdd_display_periodic_stats(hdd_ctx, (total_pkts > 0) ? true : false);
-
-	hdd_periodic_sta_stats_display(hdd_ctx);
+	/* Roaming is a high priority job but gets processed in scheduler
+	 * thread, bypassing printing stats so that kworker exits quickly and
+	 * scheduler thread can utilize CPU.
+	 */
+	if (!hdd_is_roaming_in_progress(hdd_ctx)) {
+		hdd_display_periodic_stats(hdd_ctx,
+					   (total_pkts > 0) ? true : false);
+		hdd_periodic_sta_stats_display(hdd_ctx);
+	}
 }
 
 #ifdef QCA_SUPPORT_TXRX_DRIVER_TCP_DEL_ACK