소스 검색

qcacld-3.0: Reduce time to wait for external threads completion

Presently, during unload, driver waits for max of 40sec if there are
any external threads. But if driver unload won't happen within 30sec
framework's watchdog kills system server, leading to device reboot.
Also this may lead to driver not to print external threads which got
stuck in driver.

To mitigate this issue reduce wait for external threads completion
to 20sec from 40sec.

Change-Id: I35cfb0ec20a7d4584196243ec0b1167b5eaa6bf0
CRs-Fixed: 2030112
Hanumanth Reddy Pothula 8 년 전
부모
커밋
63e25afa4e
1개의 변경된 파일8개의 추가작업 그리고 1개의 파일을 삭제
  1. 8 1
      core/cds/src/cds_sched.c

+ 8 - 1
core/cds/src/cds_sched.c

@@ -52,7 +52,7 @@
 /* MAX iteration count to wait for Entry point to exit before
  * we proceed with SSR in WD Thread
  */
-#define MAX_SSR_WAIT_ITERATIONS 200
+#define MAX_SSR_WAIT_ITERATIONS 100
 #define MAX_SSR_PROTECT_LOG (16)
 
 static atomic_t ssr_protect_entry_count;
@@ -1168,6 +1168,13 @@ bool cds_wait_for_external_threads_completion(const char *caller_func)
 				  "%s: Waiting for %d active entry points to exit",
 				  __func__, r);
 			msleep(SSR_WAIT_SLEEP_TIME);
+			if (count == (MAX_SSR_WAIT_ITERATIONS/2)) {
+				QDF_TRACE(QDF_MODULE_ID_QDF,
+					QDF_TRACE_LEVEL_ERROR,
+					"%s: in middle of waiting for active entry points:",
+					__func__);
+				cds_print_external_threads();
+			}
 		}
 	}