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

Andi Kleen
2010-02-15T10:52:55Z

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.

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

-Andi
--
ak@linux.intel.com -- Speaking for myself only.