Re: [bug] SLUB & freeing locks [was: Re: 2.6.23-rc1: known regressionswith patches]

From: Christoph Lameter
Date: Thu Jul 26 2007 - 14:10:39 EST


On Thu, 26 Jul 2007, Peter Zijlstra wrote:

> > 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().

Looks right. Have you tried to run a kernel with this change and
"slub_debug"?

Acked-by: Christoph Lameter <clameter@xxxxxxx>

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