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

Josh Triplett
2012-07-05T22:55:41Z

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

Reviewed-by: Josh Triplett <josh@joshtriplett.org>

> 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);
>
>