Browse Source

qcacld-3.0: De-serialize FW diag log events from MC thread

FW DIAG log events are serialized to MC thread(WMA message queue)
which is causing PE/SME message queues starvation when FW is
generating flood of debug log events. Since WMA message queue has
higher priority than PE/SME message queue serialized FW debug log
events eventually lead to SME command queue time out because PE
message queue is starved. Fix this PE/SME message queue starvation
by moving FW diag log event processing to kworker thread.

Change-Id: Ifd8688c61bfdd132a4727d377cfc2e975e5c5b13
CRs-Fixed: 1011762
Rajeev Kumar 9 years ago
parent
commit
e871734de8
1 changed files with 2 additions and 2 deletions
  1. 2 2
      core/utils/fwlog/dbglog_host.c

+ 2 - 2
core/utils/fwlog/dbglog_host.c

@@ -4354,14 +4354,14 @@ int dbglog_init(wmi_unified_t wmi_handle)
 	res = wmi_unified_register_event_handler(wmi_handle,
 						 WMI_DIAG_DATA_CONTAINER_EVENTID,
 						 fw_diag_data_event_handler,
-						 WMA_RX_SERIALIZER_CTX);
+						 WMA_RX_WORK_CTX);
 	if (res != 0)
 		return res;
 
 	/* Register handler for new FW diag  Event, LOG, MSG combined */
 	res = wmi_unified_register_event_handler(wmi_handle, WMI_DIAG_EVENTID,
 						 diag_fw_handler,
-						 WMA_RX_SERIALIZER_CTX);
+						 WMA_RX_WORK_CTX);
 	if (res != 0)
 		return res;