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

David Rientjes
2009-06-29T23:48:16Z

On Mon, 29 Jun 2009, Larry Finger wrote:

> > Bug-Entry : http://bugzilla.kernel.org/show_bug.cgi?id=13319
> > Subject : Page allocation failures with b43 and p54usb
> > Submitter : Larry Finger <Larry.Finger@lwfinger.net>
> > Date : 2009-04-29 21:01 (61 days old)
> > References : http://marc.info/?l=linux-kernel&m=124103897101088&w=4
> > http://lkml.org/lkml/2009/6/7/136
> > Handled-By : Johannes Berg <johannes@sipsolutions.net>
>
> The cause of these failures has been determined. The wireless
> subsystem frequently requests buffers of size 4096, but when SLUB
> debugging is enabled and the debug info is added, the request becomes
> of order 1 and memory becomes fragmented.
>
> A controversial "fix" in which SLUB debugging was disabled for
> allocations where adding such debugging info would increase the order
> was discussed and tried. With a quick look at the commit list for
> Linus's tree, I don't see that such a patch is available, but I will
> be corrected if I missed it.
>

I'd disagree with disabling slub debugging by default for caches where
oo_order(s->min) increases as the result of using it. This particular
page allocation failure is happening for, presumably, kmalloc-4096, and
the system has 4K pages. Disabling debugging for that cache (and any of
its aliases) implicitly will lead to errors going undiagnosed as a result.