[PATCH tip/core/rcu] Introduce check for callback list/count mismatch

July 05th, 2012 - 06:40 pm ET by Paul E. McKenney | Report spam
The recent bug that introduced the RCU callback list/count mismatch
showed the need for a diagnostic to check for this, which this patch
adds.

Signed-off-by: Paul E. McKenney <paul.mckenney@linaro.org>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>

diff --git a/kernel/rcutree.c b/kernel/rcutree.c
index 95c7b61..4154c95 100644
a/kernel/rcutree.c
+++ b/kernel/rcutree.c
@@ -1612,6 +1612,7 @@ static void rcu_do_batch(struct rcu_state *rsp, struct rcu_data *rdp)
rdp->n_force_qs_snap = rsp->n_force_qs;
} else if (rdp->qlen < rdp->qlen_last_fqs_check - qhimark)
rdp->qlen_last_fqs_check = rdp->qlen;
+ WARN_ON_ONCE((rdp->nxtlist == NULL) != (rdp->qlen == 0));

local_irq_restore(flags);


To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
email Follow the discussionReplies 1 replyReplies Make a reply

Replies

#1 Josh Triplett
July 05th, 2012 - 07:00 pm ET | Report spam
On Thu, Jul 05, 2012 at 03:33:19PM -0700, Paul E. McKenney wrote:
The recent bug that introduced the RCU callback list/count mismatch
showed the need for a diagnostic to check for this, which this patch
adds.

Signed-off-by: Paul E. McKenney
Signed-off-by: Paul E. McKenney



Reviewed-by: Josh Triplett

diff --git a/kernel/rcutree.c b/kernel/rcutree.c
index 95c7b61..4154c95 100644
a/kernel/rcutree.c
+++ b/kernel/rcutree.c
@@ -1612,6 +1612,7 @@ static void rcu_do_batch(struct rcu_state *rsp, struct rcu_data *rdp)
rdp->n_force_qs_snap = rsp->n_force_qs;
} else if (rdp->qlen < rdp->qlen_last_fqs_check - qhimark)
rdp->qlen_last_fqs_check = rdp->qlen;
+ WARN_ON_ONCE((rdp->nxtlist == NULL) != (rdp->qlen == 0));

local_irq_restore(flags);




To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

Similar topics