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

Nick Piggin
2010-02-15T06:15:41Z

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.

>
> Signed-off-by: Andi Kleen <ak@linux.intel.com>
>
> ---
> mm/slab.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> Index: linux-2.6.32-memhotadd/mm/slab.c
> ===================================================================
> --- linux-2.6.32-memhotadd.orig/mm/slab.c
> +++ linux-2.6.32-memhotadd/mm/slab.c
> @@ -4093,6 +4093,9 @@ static void cache_reap(struct work_struc
> * we can do some work if the lock was obtained.
> */
> l3 = searchp->nodelists[node];
> + /* Note node yet set up */
> + if (!l3)
> + break;
>
> reap_alien(searchp, l3);
>
>
> --
> To unsubscribe, send a message with 'unsubscribe linux-mm' in
> the body to majordomo@kvack.org. For more info on Linux MM,
> see: http://www.linux-mm.org/ .
> Don't email: email@kvack.org