qcacmn: trigger panic if completing tasks takes too long

Trigger panic if it takes too long in completing
the tasks. And also modify the maximum retry count
if PANIC_ON_BUG is enabled to avoid false alarms.
It makes debug easier for tasklet stuck and schedule
latency related issues.

Change-Id: I521661c656d227ffb3f4c87ecd56bbfa938c9c25
CRs-Fixed: 3441248
This commit is contained in:
Yu Wang
2023-03-22 13:04:06 +08:00
gecommit door Madan Koyyalamudi
bovenliggende 543f94ced2
commit c46d796117
2 gewijzigde bestanden met toevoegingen van 7 en 0 verwijderingen

Bestand weergeven

@@ -1258,6 +1258,9 @@ QDF_STATUS hif_try_complete_tasks(struct hif_softc *scn)
if (++task_drain_wait_cnt > HIF_TASK_DRAIN_WAIT_CNT) {
hif_err("pending tasklets %d grp tasklets %d work %d",
tasklet, grp_tasklet, work);
QDF_DEBUG_PANIC("Complete tasks takes more than %u ms: tasklets %d grp tasklets %d work %d",
HIF_TASK_DRAIN_WAIT_CNT * 10,
tasklet, grp_tasklet, work);
return QDF_STATUS_E_FAULT;
}
hif_info("waiting for tasklets %d grp tasklets %d work %d",

Bestand weergeven

@@ -437,7 +437,11 @@ static inline int hif_get_num_active_tasklets(struct hif_softc *scn)
* Max waiting time during Runtime PM suspend to finish all
* the tasks. This is in the multiple of 10ms.
*/
#ifdef PANIC_ON_BUG
#define HIF_TASK_DRAIN_WAIT_CNT 200
#else
#define HIF_TASK_DRAIN_WAIT_CNT 25
#endif
/**
* hif_try_complete_tasks() - Try to complete all the pending tasks