Re: [bug] SLUB & freeing locks [was: Re: 2.6.23-rc1: knownregressions with patches]
From: Peter Zijlstra
Date: Thu Jul 26 2007 - 05:26:33 EST
On Thu, 2007-07-26 at 11:10 +0200, Ingo Molnar wrote:
> there's a new regression:
>
> SLUB does not seem to call debug_check_no_locks_freed() - hence on SLUB
> we will not notice certain types of freeing races. (such as freeing an
> object still locked and used on another CPU.) SLAB does this corretly.
Does this help?
---
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);
}
-
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/