]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
rcu: Fix typo and add additional debug
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Tue, 1 May 2018 22:00:10 +0000 (15:00 -0700)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Thu, 12 Jul 2018 22:39:00 +0000 (15:39 -0700)
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>
kernel/rcu/tree.c
kernel/rcu/tree_plugin.h

index 85417584ffd08607f11a257c17d7f22761df1673..a4277c1087d9104d8566aead20d724fa476a15a7 100644 (file)
@@ -2316,6 +2316,7 @@ static void rcu_report_unblock_qs_rnp(struct rcu_state *rsp,
                return;  /* Still need more quiescent states! */
        }
 
+       rnp->completedqs = rnp->gp_seq;
        rnp_p = rnp->parent;
        if (rnp_p == NULL) {
                /*
index 3a6e04103de17e411d85fd85daa1b48ef1a7c36a..677b0c9f548d667c5db287c10d607292c2eee9be 100644 (file)
@@ -856,8 +856,14 @@ static void dump_blkd_tasks(struct rcu_node *rnp, int ncheck)
        struct list_head *lhp;
 
        raw_lockdep_assert_held_rcu_node(rnp);
-       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));
-       pr_cont("\t->blkd_tasks");
+       pr_info("%s: grp: %d-%d level: %d ->gp_seq %#lx ->completedqs %#lx\n",
+               __func__, rnp->grplo, rnp->grphi, rnp->level,
+               rnp->gp_seq, rnp->completedqs);
+       pr_info("%s: ->qsmask %#lx ->qsmaskinit %#lx ->qsmaskinitnext %#lx\n",
+               __func__, rnp->qsmask, rnp->qsmaskinit, rnp->qsmaskinitnext);
+       pr_info("%s: ->gp_tasks %p ->boost_tasks %p ->exp_tasks %p\n",
+               __func__, rnp->gp_tasks, rnp->boost_tasks, rnp->exp_tasks);
+       pr_info("%s: ->blkd_tasks", __func__);
        i = 0;
        list_for_each(lhp, &rnp->blkd_tasks) {
                pr_cont(" %p", lhp);