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

David Rientjes
2010-08-26T22:31:30Z

On Thu, 26 Aug 2010, Christoph Lameter wrote:

> > Because we can remove the flag, remove branches from the page allocator
> > slowpath, and none of these allocations actually are dependent on
> > __GFP_NOFAIL since they are all under PAGE_ALLOC_COSTLY_ORDER.
>
> Then we can simply remove __GFP_NOFAIL? Functions are only needed for
> higher order allocs that can fail?
>

Yes, that's the intent. We'd like to add the
WARN_ON_ONCE(get_order(size) >= PAGE_ALLOC_COSTLY_ORDER) warning, though,
so we're ensured that redefinition of that #define doesn't cause
allocations to fail to that don't have appropriate error handling or
future callers use higher order allocs. The _nofail() functions help that
and do some due diligence in ensuring that we aren't changing gfp flags
based only on the current page allocator implementation which may later
change with very specialized corner cases.