Re: [PATCH]rcu classic: update qlen when cpu offline

From: Ingo Molnar
Date: Sun Jul 13 2008 - 17:13:42 EST



* Paul E. McKenney <paulmck@xxxxxxxxxxxxxxxxxx> wrote:

> On Thu, Jun 26, 2008 at 10:06:43AM +0800, Lai Jiangshan wrote:
> >
> > When callbacks are moved from offline cpu to this cpu,
> > the qlen field of this rdp should be updated.
>
> Good catch!!!
>
> The effect of this bug would be for force_quiescent_state() to be invoked
> when it should not and vice versa -- wasting cycles in the first case
> and letting RCU callbacks remain piled up in the second case. The bug
> is thus "benign" in that it does not result in premature grace-period
> termination, but should of course be fixed nonetheless.
>
> Preemption is disabled by the caller's get_cpu_var(), so we are guaranteed
> to remain on the same CPU, as required. The local_irq_disable() is indeed
> needed, otherwise, an interrupt might invoke call_rcu() or call_rcu_bh(),
> which could cause that interrupt's increment of ->qlen to be lost.
>
> So this patch looks correct to me. Good job, Jiangshan!!!
>
> Ingo, would you be willing to add this patch to tip/core/rcu?
>
> Reviewed-by: Paul E. McKenney <paulmck@xxxxxxxxxxxxxxxxxx>

thanks, applied to tip/core/rcu. (sorry about the delay!)

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