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

From: Nick Piggin
Date: Mon Feb 15 2010 - 01:15:48 EST


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@xxxxxxxxxxxxxxx>
>
> ---
> 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@xxxxxxxxxx For more info on Linux MM,
> see: http://www.linux-mm.org/ .
> Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>
--
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/