diff options
author | Paul E. McKenney <paul.mckenney@linaro.org> | 2011-03-29 20:48:28 -0400 |
---|---|---|
committer | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2011-05-06 02:16:56 -0400 |
commit | d71df90eadfc35aa549ff9a850842673febca71f (patch) | |
tree | dd275a3f4848784bc6625574341c11befc1b3823 /kernel/rcutree.h | |
parent | 0ac3d136b2e3cdf1161178223bc5da14a06241d0 (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.h | 11 |
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 | /* |