Re: [patch 1/5] mm: add nofail variants of kmalloc kcalloc andkzalloc

From: David Rientjes
Date: Wed Aug 25 2010 - 17:23:44 EST


On Wed, 25 Aug 2010, Christoph Lameter wrote:

> We already have __GFP_NOFAIL behavior for slab allocations since
> a __GFP_NOFAIL flag is passed through to the page allocator if no objects
> are available.
>

It all depends on what flags are passed to kmalloc(), slab nor slub
enforce __GFP_NOFAIL behavior themselves. In slab, cache_grow() will
return NULL depending on whether the page allocator returns NULL, and that
would only happen for __GFP_NORETRY or
cachep->gfp->gfporder >= PAGE_ALLOC_COSTLY_ORDER. In slub, the default
order is tried with __GFP_NORETRY and if it returns NULL, the higher order
alloc will fail under the same circumstances. So the nofail behavior for
slab depends only on the flags passed from the caller.
--
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/