watchdog: Induce non secure watchdog bite for lockup
Induce non secure watchdog bite when ever kernel soft lockup or hard lockups are detected. So that proper context of cpus can be collected for debugging. Change-Id: I613391d8d53fe52ce7934cdc910fb135c4e0fbf2 Signed-off-by: Prasad Sodagudi <psodagud@codeaurora.org> Signed-off-by: Channagoud Kadabi <ckadabi@codeaurora.org>
This commit is contained in:
parent
70fe31746f
commit
309fb625f9
1 changed files with 12 additions and 2 deletions
|
|
@ -27,6 +27,7 @@
|
|||
#include <linux/kvm_para.h>
|
||||
#include <linux/perf_event.h>
|
||||
#include <linux/kthread.h>
|
||||
#include <soc/qcom/watchdog.h>
|
||||
|
||||
/*
|
||||
* The run state of the lockup detectors is controlled by the content of the
|
||||
|
|
@ -364,8 +365,11 @@ static void watchdog_check_hardlockup_other_cpu(void)
|
|||
if (per_cpu(hard_watchdog_warn, next_cpu) == true)
|
||||
return;
|
||||
|
||||
if (hardlockup_panic)
|
||||
panic("Watchdog detected hard LOCKUP on cpu %u", next_cpu);
|
||||
if (hardlockup_panic) {
|
||||
pr_err("Watchdog detected hard LOCKUP on cpu %u",
|
||||
next_cpu);
|
||||
msm_trigger_wdog_bite();
|
||||
}
|
||||
else
|
||||
WARN(1, "Watchdog detected hard LOCKUP on cpu %u", next_cpu);
|
||||
|
||||
|
|
@ -427,6 +431,9 @@ static void watchdog_overflow_callback(struct perf_event *event,
|
|||
return;
|
||||
|
||||
pr_emerg("Watchdog detected hard LOCKUP on cpu %d", this_cpu);
|
||||
if (hardlockup_panic)
|
||||
msm_trigger_wdog_bite();
|
||||
|
||||
print_modules();
|
||||
print_irqtrace_events(current);
|
||||
if (regs)
|
||||
|
|
@ -549,6 +556,9 @@ static enum hrtimer_restart watchdog_timer_fn(struct hrtimer *hrtimer)
|
|||
pr_emerg("BUG: soft lockup - CPU#%d stuck for %us! [%s:%d]\n",
|
||||
smp_processor_id(), duration,
|
||||
current->comm, task_pid_nr(current));
|
||||
|
||||
if (softlockup_panic)
|
||||
msm_trigger_wdog_bite();
|
||||
__this_cpu_write(softlockup_task_ptr_saved, current);
|
||||
print_modules();
|
||||
print_irqtrace_events(current);
|
||||
|
|
|
|||
Loading…
Reference in a new issue