Re: [bug] SLUB & freeing locks [was: Re: 2.6.23-rc1: knownregressions with patches]

From: Peter Zijlstra
Date: Thu Jul 26 2007 - 14:05:31 EST


On Thu, 2007-07-26 at 11:26 +0200, Peter Zijlstra wrote:

> ---
> mm/slub.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> Index: linux-2.6/mm/slub.c
> ===================================================================
> --- linux-2.6.orig/mm/slub.c
> +++ linux-2.6/mm/slub.c
> @@ -1131,6 +1131,7 @@ static void __free_slab(struct kmem_cach
> slab_pad_check(s, page);
> for_each_object(p, s, page_address(page))
> check_object(s, page, p, 0);
> + ClearSlabDebug(page);
> }
>
> mod_zone_page_state(page_zone(page),
> @@ -1169,7 +1170,6 @@ static void discard_slab(struct kmem_cac
>
> atomic_long_dec(&n->nr_slabs);
> reset_page_mapcount(page);
> - ClearSlabDebug(page);
> __ClearPageSlab(page);
> free_slab(s, page);
> }
>

Christoph, how about this bit, it looks to me like we clear SlabDebug()
before we hit the last check in __free_slab().

-
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/