summaryrefslogtreecommitdiff
path: root/kernel/rcutree.h
diff options
context:
space:
mode:
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>2013-03-06 21:37:09 (GMT)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>2013-03-13 21:43:56 (GMT)
commit6231069bdab575fce862ca786f1c0ba5e4e9ba3b (patch)
tree95c88dfa505c5ae3b27df9bcffb07edf3dae511f /kernel/rcutree.h
parent49d0de082c31de34cc896c14eec5f1c2ade0415a (diff)
downloadlinux-fsl-qoriq-6231069bdab575fce862ca786f1c0ba5e4e9ba3b.tar.xz
rcu: Add softirq-stall indications to stall-warning messages
If RCU's softirq handler is prevented from executing, an RCU CPU stall warning can result. Ways to prevent RCU's softirq handler from executing include: (1) CPU spinning with interrupts disabled, (2) infinite loop in some softirq handler, and (3) in -rt kernels, an infinite loop in a set of real-time threads running at priorities higher than that of RCU's softirq handler. Because this situation can be difficult to track down, this commit causes the count of RCU softirq handler invocations to be printed with RCU CPU stall warnings. This information does require some interpretation, as now documented in Documentation/RCU/stallwarn.txt. Reported-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Tested-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Diffstat (limited to 'kernel/rcutree.h')
-rw-r--r--kernel/rcutree.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/kernel/rcutree.h b/kernel/rcutree.h
index 8e75609..26c9bb3 100644
--- a/kernel/rcutree.h
+++ b/kernel/rcutree.h
@@ -325,6 +325,11 @@ struct rcu_data {
struct task_struct *nocb_kthread;
#endif /* #ifdef CONFIG_RCU_NOCB_CPU */
+ /* 8) RCU CPU stall data. */
+#ifdef CONFIG_RCU_CPU_STALL_INFO
+ unsigned int softirq_snap; /* Snapshot of softirq activity. */
+#endif /* #ifdef CONFIG_RCU_CPU_STALL_INFO */
+
int cpu;
struct rcu_state *rsp;
};