aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/rcutree_plugin.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_plugin.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_plugin.h')
-rw-r--r--kernel/rcutree_plugin.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/kernel/rcutree_plugin.h b/kernel/rcutree_plugin.h
index 07d346445d12..22a6a46de7c6 100644
--- a/kernel/rcutree_plugin.h
+++ b/kernel/rcutree_plugin.h
@@ -1198,11 +1198,13 @@ static int rcu_boost_kthread(void *arg)
1198 int more2boost; 1198 int more2boost;
1199 1199
1200 for (;;) { 1200 for (;;) {
1201 rnp->boost_kthread_status = RCU_KTHREAD_WAITING;
1201 wait_event_interruptible(rnp->boost_wq, rnp->boost_tasks || 1202 wait_event_interruptible(rnp->boost_wq, rnp->boost_tasks ||
1202 rnp->exp_tasks || 1203 rnp->exp_tasks ||
1203 kthread_should_stop()); 1204 kthread_should_stop());
1204 if (kthread_should_stop()) 1205 if (kthread_should_stop())
1205 break; 1206 break;
1207 rnp->boost_kthread_status = RCU_KTHREAD_RUNNING;
1206 more2boost = rcu_boost(rnp); 1208 more2boost = rcu_boost(rnp);
1207 if (more2boost) 1209 if (more2boost)
1208 spincnt++; 1210 spincnt++;
@@ -1213,6 +1215,7 @@ static int rcu_boost_kthread(void *arg)
1213 spincnt = 0; 1215 spincnt = 0;
1214 } 1216 }
1215 } 1217 }
1218 rnp->boost_kthread_status = RCU_KTHREAD_STOPPED;
1216 return 0; 1219 return 0;
1217} 1220}
1218 1221