Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b7207bf0 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "rcu: Induce msm watchdog bite for rcu stalls"

parents ddf19743 4f659aa5
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -57,6 +57,8 @@
#include <linux/trace_events.h>
#include <linux/suspend.h>

#include <soc/qcom/watchdog.h>

#include "tree.h"
#include "rcu.h"

@@ -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. */
}

@@ -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.
	 *
+11 −0
Original line number Diff line number Diff line
@@ -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