diff options
author | Paul E. McKenney <paul.mckenney@linaro.org> | 2010-11-30 00:56:39 -0500 |
---|---|---|
committer | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2011-05-06 02:16:54 -0400 |
commit | 12f5f524cafef3ab689929b118f2dfb8bf2be321 (patch) | |
tree | 639473556b6edf9b79e0a18d5ba58f80eea76519 /kernel/rcutree_trace.c | |
parent | e59fb3120becfb36b22ddb8bd27d065d3cdca499 (diff) |
rcu: merge TREE_PREEPT_RCU blocked_tasks[] lists
Combine the current TREE_PREEMPT_RCU ->blocked_tasks[] lists in the
rcu_node structure into a single ->blkd_tasks list with ->gp_tasks
and ->exp_tasks tail pointers. This is in preparation for RCU priority
boosting, which will add a third dimension to the combinatorial explosion
in the ->blocked_tasks[] case, but simply a third pointer in the new
->blkd_tasks case.
Also update documentation to reflect blocked_tasks[] merge
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_trace.c')
-rw-r--r-- | kernel/rcutree_trace.c | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/kernel/rcutree_trace.c b/kernel/rcutree_trace.c index 4a21ca55ef7c..1cedf94e2c4f 100644 --- a/kernel/rcutree_trace.c +++ b/kernel/rcutree_trace.c | |||
@@ -161,7 +161,6 @@ static void print_one_rcu_state(struct seq_file *m, struct rcu_state *rsp) | |||
161 | { | 161 | { |
162 | unsigned long gpnum; | 162 | unsigned long gpnum; |
163 | int level = 0; | 163 | int level = 0; |
164 | int phase; | ||
165 | struct rcu_node *rnp; | 164 | struct rcu_node *rnp; |
166 | 165 | ||
167 | gpnum = rsp->gpnum; | 166 | gpnum = rsp->gpnum; |
@@ -178,13 +177,11 @@ static void print_one_rcu_state(struct seq_file *m, struct rcu_state *rsp) | |||
178 | seq_puts(m, "\n"); | 177 | seq_puts(m, "\n"); |
179 | level = rnp->level; | 178 | level = rnp->level; |
180 | } | 179 | } |
181 | phase = gpnum & 0x1; | 180 | seq_printf(m, "%lx/%lx %c%c>%c %d:%d ^%d ", |
182 | seq_printf(m, "%lx/%lx %c%c>%c%c %d:%d ^%d ", | ||
183 | rnp->qsmask, rnp->qsmaskinit, | 181 | rnp->qsmask, rnp->qsmaskinit, |
184 | "T."[list_empty(&rnp->blocked_tasks[phase])], | 182 | ".G"[rnp->gp_tasks != NULL], |
185 | "E."[list_empty(&rnp->blocked_tasks[phase + 2])], | 183 | ".E"[rnp->exp_tasks != NULL], |
186 | "T."[list_empty(&rnp->blocked_tasks[!phase])], | 184 | ".T"[!list_empty(&rnp->blkd_tasks)], |
187 | "E."[list_empty(&rnp->blocked_tasks[!phase + 2])], | ||
188 | rnp->grplo, rnp->grphi, rnp->grpnum); | 185 | rnp->grplo, rnp->grphi, rnp->grpnum); |
189 | } | 186 | } |
190 | seq_puts(m, "\n"); | 187 | seq_puts(m, "\n"); |