On Wed, 25 Aug 2010, David Rientjes wrote: > 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. If the higher order fails in slub then an order 0 alloc is attempted without __GFP_NORETRY. In both cases the nofail behavior of the page allocator determines the outcode. True if the caller mixes in __GFP_NORETRY then you may still get NULL. But that is an issue that can be resolved by the caller. -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html