aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/rcutree.h
diff options
context:
space:
mode:
authorPaul E. McKenney <paul.mckenney@linaro.org>2011-02-22 16:42:43 -0500
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>2011-05-06 02:16:55 -0400
commit0ea1f2ebeb217d38770aebf91c4ecaa8e01b3305 (patch)
treeef558d2eb804ca033a5166d24f5b4be7cf87727f /kernel/rcutree.h
parent67b98dba474f293c389fc2b7254dcf7c0492e3bd (diff)
rcu: Add boosting to TREE_PREEMPT_RCU tracing
Includes total number of tasks boosted, number boosted on behalf of each of normal and expedited grace periods, and statistics on attempts to initiate boosting that failed for various reasons. 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.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/kernel/rcutree.h b/kernel/rcutree.h
index 8db0cdc7f450..d49046c79c59 100644
--- a/kernel/rcutree.h
+++ b/kernel/rcutree.h
@@ -152,6 +152,25 @@ struct rcu_node {
152 wait_queue_head_t boost_wq; 152 wait_queue_head_t boost_wq;
153 /* Wait queue on which to park the boost */ 153 /* Wait queue on which to park the boost */
154 /* kthread. */ 154 /* kthread. */
155 unsigned long n_tasks_boosted;
156 /* Total number of tasks boosted. */
157 unsigned long n_exp_boosts;
158 /* Number of tasks boosted for expedited GP. */
159 unsigned long n_normal_boosts;
160 /* Number of tasks boosted for normal GP. */
161 unsigned long n_balk_blkd_tasks;
162 /* Refused to boost: no blocked tasks. */
163 unsigned long n_balk_exp_gp_tasks;
164 /* Refused to boost: nothing blocking GP. */
165 unsigned long n_balk_boost_tasks;
166 /* Refused to boost: already boosting. */
167 unsigned long n_balk_notblocked;
168 /* Refused to boost: RCU RS CS still running. */
169 unsigned long n_balk_notyet;
170 /* Refused to boost: not yet time. */
171 unsigned long n_balk_nos;
172 /* Refused to boost: not sure why, though. */
173 /* This can happen due to race conditions. */
155#endif /* #ifdef CONFIG_RCU_BOOST */ 174#endif /* #ifdef CONFIG_RCU_BOOST */
156 struct task_struct *node_kthread_task; 175 struct task_struct *node_kthread_task;
157 /* kthread that takes care of this rcu_node */ 176 /* kthread that takes care of this rcu_node */