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

Larry Finger
2009-06-30T02:06:53Z

David Rientjes wrote:
> 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-tQ5ms3gMjBLk1uMJSBkQmQ@public.gmane.org>
>>> 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-cdvu00un1VgdHxzADdlk8Q@public.gmane.org>
>> 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.

If the current behavior is not changed, I will be forced to disable
SLUB debugging, which will explicitly lead to errors that are
undiagnosed. It seems better to me to debug when you can, but turn off
debugging in cases like this.

Larry