Re: [PATCH,RFC] Add call_rcu_sched()

From: Gautham R Shenoy
Date: Tue Apr 08 2008 - 04:56:58 EST


On Tue, Apr 08, 2008 at 01:39:36AM -0700, Andrew Morton wrote:
> On Tue, 8 Apr 2008 13:40:48 +0530 Gautham R Shenoy <ego@xxxxxxxxxx> wrote:
>
> > > > + rdp = RCU_DATA_CPU(cpu);
> > <-- here ------\
> > > > + spin_lock_irqsave(&rdp->lock, flags); |
> > > > + |
> > > > + /* |
> > > > + * We are running on this CPU irq-disabled, so no |
> > > > + * CPU can go offline until we re-enable irqs. |
> > > |
> > > but, but, but. The cpu at `cpu' could have gone offline just before we |
> > > disabled local interrupts. |
> > |
> > In that case the CPU_DEAD callback should have migrated the rcu-lists to |
> > a cpu which is online. |
> |
> But local variable rdp might be pointing at the now-offlined CPU's data? -------/

Right. But then rdp wouldn't contain anything useful at this point.
So, we may only end up taking the rdp->lock, observe that there's nothing to do,
and move on.

Is there something else that I am missing?

--
Thanks and Regards
gautham
--
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/