aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/rcutree.h
diff options
context:
space:
mode:
authorPaul E. McKenney <paul.mckenney@linaro.org>2011-03-29 20:48:28 -0400
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>2011-05-06 02:16:56 -0400
commitd71df90eadfc35aa549ff9a850842673febca71f (patch)
treedd275a3f4848784bc6625574341c11befc1b3823 /kernel/rcutree.h
parent0ac3d136b2e3cdf1161178223bc5da14a06241d0 (diff)
rcu: add tracing for RCU's kthread run states.
Add tracing to help debugging situations when RCU's kthreads are not running but are supposed to be. Signed-off-by: Paul E. McKenney <paul.mckenney@linaro.org> Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Reviewed-by: Josh Triplett <josh@joshtriplett.org>
Diffstat (limited to 'kernel/rcutree.h')
-rw-r--r--kernel/rcutree.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/kernel/rcutree.h b/kernel/rcutree.h
index d49046c79c59..67341dbebd95 100644
--- a/kernel/rcutree.h
+++ b/kernel/rcutree.h
@@ -89,6 +89,13 @@ struct rcu_dynticks {
89 atomic_t dynticks; /* Even value for dynticks-idle, else odd. */ 89 atomic_t dynticks; /* Even value for dynticks-idle, else odd. */
90}; 90};
91 91
92/* RCU's kthread states for tracing. */
93#define RCU_KTHREAD_STOPPED 0
94#define RCU_KTHREAD_RUNNING 1
95#define RCU_KTHREAD_WAITING 2
96#define RCU_KTHREAD_YIELDING 3
97#define RCU_KTHREAD_MAX 3
98
92/* 99/*
93 * Definition for node within the RCU grace-period-detection hierarchy. 100 * Definition for node within the RCU grace-period-detection hierarchy.
94 */ 101 */
@@ -152,6 +159,8 @@ struct rcu_node {
152 wait_queue_head_t boost_wq; 159 wait_queue_head_t boost_wq;
153 /* Wait queue on which to park the boost */ 160 /* Wait queue on which to park the boost */
154 /* kthread. */ 161 /* kthread. */
162 unsigned int boost_kthread_status;
163 /* State of boost_kthread_task for tracing. */
155 unsigned long n_tasks_boosted; 164 unsigned long n_tasks_boosted;
156 /* Total number of tasks boosted. */ 165 /* Total number of tasks boosted. */
157 unsigned long n_exp_boosts; 166 unsigned long n_exp_boosts;
@@ -179,6 +188,8 @@ struct rcu_node {
179 wait_queue_head_t node_wq; 188 wait_queue_head_t node_wq;
180 /* Wait queue on which to park the per-node */ 189 /* Wait queue on which to park the per-node */
181 /* kthread. */ 190 /* kthread. */
191 unsigned int node_kthread_status;
192 /* State of node_kthread_task for tracing. */
182} ____cacheline_internodealigned_in_smp; 193} ____cacheline_internodealigned_in_smp;
183 194
184/* 195/*