Loading kernel/rcu/tree.c +12 −0 Original line number Diff line number Diff line Loading @@ -57,6 +57,8 @@ #include <linux/trace_events.h> #include <linux/suspend.h> #include <soc/qcom/watchdog.h> #include "tree.h" #include "rcu.h" Loading Loading @@ -1298,6 +1300,11 @@ static void print_other_cpu_stall(struct rcu_state *rsp, unsigned long gpnum) rcu_check_gp_kthread_starvation(rsp); #ifdef CONFIG_RCU_STALL_WATCHDOG_BITE /* Induce watchdog bite */ msm_trigger_wdog_bite(); #endif force_quiescent_state(rsp); /* Kick them all. */ } Loading Loading @@ -1333,6 +1340,11 @@ static void print_cpu_stall(struct rcu_state *rsp) jiffies + 3 * rcu_jiffies_till_stall_check() + 3); raw_spin_unlock_irqrestore(&rnp->lock, flags); #ifdef CONFIG_RCU_STALL_WATCHDOG_BITE /* Induce non secure watchdog bite to collect context */ msm_trigger_wdog_bite(); #endif /* * Attempt to revive the RCU machinery by forcing a context switch. * Loading lib/Kconfig.debug +11 −0 Original line number Diff line number Diff line Loading @@ -1455,6 +1455,17 @@ config RCU_CPU_STALL_TIMEOUT RCU grace period persists, additional CPU stall warnings are printed at more widely spaced intervals. config RCU_STALL_WATCHDOG_BITE bool "RCU stall induce watchdog bite" depends on RCU_STALL_COMMON && QCOM_WATCHDOG_V2 help Induce watchdog bite if RCU grace period extends more than specified no of seconds instead of just warning messages. This helps to collect ram dumps and cpu context for postmortem analysis. Generally if a given RCU grace period extends more than the specified number of seconds, a CPU stall warning is printed. config RCU_TRACE bool "Enable tracing for RCU" depends on DEBUG_KERNEL Loading Loading
kernel/rcu/tree.c +12 −0 Original line number Diff line number Diff line Loading @@ -57,6 +57,8 @@ #include <linux/trace_events.h> #include <linux/suspend.h> #include <soc/qcom/watchdog.h> #include "tree.h" #include "rcu.h" Loading Loading @@ -1298,6 +1300,11 @@ static void print_other_cpu_stall(struct rcu_state *rsp, unsigned long gpnum) rcu_check_gp_kthread_starvation(rsp); #ifdef CONFIG_RCU_STALL_WATCHDOG_BITE /* Induce watchdog bite */ msm_trigger_wdog_bite(); #endif force_quiescent_state(rsp); /* Kick them all. */ } Loading Loading @@ -1333,6 +1340,11 @@ static void print_cpu_stall(struct rcu_state *rsp) jiffies + 3 * rcu_jiffies_till_stall_check() + 3); raw_spin_unlock_irqrestore(&rnp->lock, flags); #ifdef CONFIG_RCU_STALL_WATCHDOG_BITE /* Induce non secure watchdog bite to collect context */ msm_trigger_wdog_bite(); #endif /* * Attempt to revive the RCU machinery by forcing a context switch. * Loading
lib/Kconfig.debug +11 −0 Original line number Diff line number Diff line Loading @@ -1455,6 +1455,17 @@ config RCU_CPU_STALL_TIMEOUT RCU grace period persists, additional CPU stall warnings are printed at more widely spaced intervals. config RCU_STALL_WATCHDOG_BITE bool "RCU stall induce watchdog bite" depends on RCU_STALL_COMMON && QCOM_WATCHDOG_V2 help Induce watchdog bite if RCU grace period extends more than specified no of seconds instead of just warning messages. This helps to collect ram dumps and cpu context for postmortem analysis. Generally if a given RCU grace period extends more than the specified number of seconds, a CPU stall warning is printed. config RCU_TRACE bool "Enable tracing for RCU" depends on DEBUG_KERNEL Loading