aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>2018-05-01 18:00:10 -0400
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>2018-07-12 18:39:00 -0400
commit77cfc7bf24ba0ba37be54e224007847d485a860f (patch)
tree39790cb5070c6d9578f088711f6040af1a5c60f4
parentc74859d1eb2d8578bdf6d78ba893e394085aba1a (diff)
rcu: Fix typo and add additional debug
This commit fixes a typo and adds some additional debugging to the message emitted when a task blocking the current grace period is listed as blocking it when either that grace period ends or the next grace period begins. This commit also reformats the console message for readability. Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
-rw-r--r--kernel/rcu/tree.c1
-rw-r--r--kernel/rcu/tree_plugin.h10
2 files changed, 9 insertions, 2 deletions
diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c
index 85417584ffd0..a4277c1087d9 100644
--- a/kernel/rcu/tree.c
+++ b/kernel/rcu/tree.c
@@ -2316,6 +2316,7 @@ static void rcu_report_unblock_qs_rnp(struct rcu_state *rsp,
2316 return; /* Still need more quiescent states! */ 2316 return; /* Still need more quiescent states! */
2317 } 2317 }
2318 2318
2319 rnp->completedqs = rnp->gp_seq;
2319 rnp_p = rnp->parent; 2320 rnp_p = rnp->parent;
2320 if (rnp_p == NULL) { 2321 if (rnp_p == NULL) {
2321 /* 2322 /*
diff --git a/kernel/rcu/tree_plugin.h b/kernel/rcu/tree_plugin.h
index 3a6e04103de1..677b0c9f548d 100644
--- a/kernel/rcu/tree_plugin.h
+++ b/kernel/rcu/tree_plugin.h
@@ -856,8 +856,14 @@ static void dump_blkd_tasks(struct rcu_node *rnp, int ncheck)
856 struct list_head *lhp; 856 struct list_head *lhp;
857 857
858 raw_lockdep_assert_held_rcu_node(rnp); 858 raw_lockdep_assert_held_rcu_node(rnp);
859 pr_info("%s: grp: %d-%d level: %d ->qamask %#lx ->gp_tasks %p ->boost_tasks %p ->exp_tasks %p &->blkd_tasks: %p offset: %u\n", __func__, rnp->grplo, rnp->grphi, rnp->level, rnp->qsmask, rnp->gp_tasks, rnp->boost_tasks, rnp->exp_tasks, &rnp->blkd_tasks, (unsigned int)offsetof(typeof(*rnp), blkd_tasks)); 859 pr_info("%s: grp: %d-%d level: %d ->gp_seq %#lx ->completedqs %#lx\n",
860 pr_cont("\t->blkd_tasks"); 860 __func__, rnp->grplo, rnp->grphi, rnp->level,
861 rnp->gp_seq, rnp->completedqs);
862 pr_info("%s: ->qsmask %#lx ->qsmaskinit %#lx ->qsmaskinitnext %#lx\n",
863 __func__, rnp->qsmask, rnp->qsmaskinit, rnp->qsmaskinitnext);
864 pr_info("%s: ->gp_tasks %p ->boost_tasks %p ->exp_tasks %p\n",
865 __func__, rnp->gp_tasks, rnp->boost_tasks, rnp->exp_tasks);
866 pr_info("%s: ->blkd_tasks", __func__);
861 i = 0; 867 i = 0;
862 list_for_each(lhp, &rnp->blkd_tasks) { 868 list_for_each(lhp, &rnp->blkd_tasks) {
863 pr_cont(" %p", lhp); 869 pr_cont(" %p", lhp);