Re: [PATCH] [4/4] SLAB: Fix node add timer race in cache_reap

Nick Piggin
2010-02-15T11:02:30Z

On Mon, Feb 15, 2010 at 11:52:53AM +0100, Andi Kleen wrote:
> On Mon, Feb 15, 2010 at 09:41:35PM +1100, Nick Piggin wrote:
> > On Mon, Feb 15, 2010 at 11:32:50AM +0100, Andi Kleen wrote:
> > > On Mon, Feb 15, 2010 at 05:15:35PM +1100, Nick Piggin wrote:
> > > > On Thu, Feb 11, 2010 at 09:54:04PM +0100, Andi Kleen wrote:
> > > > >
> > > > > cache_reap can run before the node is set up and then reference a NULL
> > > > > l3 list. Check for this explicitely and just continue. The node
> > > > > will be eventually set up.
> > > >
> > > > How, may I ask? cpuup_prepare in the hotplug notifier should always
> > > > run before start_cpu_timer.
> > >
> > > I'm not fully sure, but I have the oops to prove it :)
> >
> > Hmm, it would be nice to work out why it's happening. If it's completely
> > reproducible then could I send you a debug patch to test?
>
> Looking at it again I suspect it happened this way:
>
> cpuup_prepare fails (e.g. kmalloc_node returns NULL). The later
> patches might have cured that. Nothing stops the timer from
> starting in this case anyways.

Hmm, but it should, because if cpuup_prepare fails then the
CPU_ONLINE notifiers should never be called I think.

> So given that the first patches might not be needed, but it's
> safer to have anyways.

I'm just worried there is still an underlying problem here.