Re: [Bug #13319] Page allocation failures with b43 and p54usb

From: David Rientjes
Date: Mon Jul 27 2009 - 05:37:29 EST


On Mon, 27 Jul 2009, Pekka Enberg wrote:

> > Hmm, I'm remembering differently.  I thought the root problem here has
> > only been fixed in Pekka's slab-2.6.git tree with "slub: add option to
> > disable higher order debugging slabs" and isn't currently in Linus' tree.
>
> Yup, the fix is in slab.git and queued for 2.6.32. There was some
> complaints from Christoph from the patch that need to be addressed
> still.
>

>From what I recall, he asked that calculate_sizes() be called twice, first
to determine if get_order(s->size) increased as the result of the metadata
and, if so, a second time with the flags disabled.

slab_debug=O only disables debugging options that increase the min order
of slab as defined in DEBUG_FLAGS; it doesn't selectively disable some of
them when get_order(s->size) grows. So it's quite sane, like my patch
does, to disable all DEBUG_FLAGS when

get_order(s->objsize) + DEBUG_SIZE_FLAGS > get_order(s->objsize)

without calling calculate_sizes() twice.

We need DEBUG_FLAGS to determine which flags to mask off to reduce the
minimum order, so I don't see DEBUG_FLAGS_SIZE as troublesome.

Christoph?