Re: [PATCH] Should GFP_ATOMIC fail when we're below low watermark?

From: Peter Zijlstra
Date: Sun Aug 19 2007 - 22:44:12 EST


On Mon, 2007-08-20 at 11:38 +1000, Nigel Cunningham wrote:
> Hi all.
>
> In current git (and for a while now), an attempt to allocate memory with
> GFP_ATOMIC will fail if we're below the low watermark level. The only way to
> access that memory that I can see (not that I've looked that hard) is to have
> PF_MEMALLOC set (ie from kswapd). I'm wondering if this behaviour is correct.
> Shouldn't GFP_ATOMIC allocations ignore watermarks too? How about GFP_KERNEL?
>
> The following patch is a potential fix for GFP_ATOMIC.

Sorry, no.

GFP_ATOMIC must fail when below the watermark. GFP_KERNEL has __GFP_WAIT
and hence can sleep and wait for reclaim so that should not be a problem
(usually).

GFP_ATOMIC may not access the reserves because the reserves are needed
to get out of OOM deadlocks within the VM. Consider the fact that
freeing memory needs memory - if there is no memory free, you cannot
free memory and you're pretty much stuck.

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