Re: WARNING: at mm/page_alloc.c:1159get_page_from_freelist+0x325/0x655()

From: Linus Torvalds
Date: Wed Jun 17 2009 - 12:40:45 EST




On Wed, 17 Jun 2009, Ingo Molnar wrote:
>
> a new warning started popping up today, in the new page allocator
> code. The allocation came from kmemleak:

We should probably print out the order.

Right now it warns about any order but 0, and I think that's likely bogus.
It's fine to allow small orders (I'd suggest 0-2), since we should always
be able to get those, and small kmalloc's generally do want more than one
page just to avoid crazy fragmentation issues.

See, for example, the whole 'slab_break_gfp_order' logic in mm/slab.c: it
very much expects to be able to use order-1 allocations for kmalloc() if
there is enough memory (where "enough" is actually just 32MB). And slub
seems to put some limit at PAGE_ALLOC_COSTLY_ORDER (3).

So apart from anything else (ie this particular case is possibly fixable
in kmemleak), I do think that we should likely allow at least order-1 and
possible order-2 allocations with __GFP_NOFAIL too.

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