Re: [PATCH 2/8] mm, page_alloc: set alloc_flags only once in slowpath

From: Vlastimil Babka
Date: Thu Jul 21 2016 - 03:00:59 EST


On 07/20/2016 12:28 AM, David Rientjes wrote:
On Mon, 18 Jul 2016, Vlastimil Babka wrote:

In __alloc_pages_slowpath(), alloc_flags doesn't change after it's initialized,
so move the initialization above the retry: label. Also make the comment above
the initialization more descriptive.

The only exception in the alloc_flags being constant is ALLOC_NO_WATERMARKS,
which may change due to TIF_MEMDIE being set on the allocating thread. We can
fix this, and make the code simpler and a bit more effective at the same time,
by moving the part that determines ALLOC_NO_WATERMARKS from
gfp_to_alloc_flags() to gfp_pfmemalloc_allowed(). This means we don't have to
mask out ALLOC_NO_WATERMARKS in numerous places in __alloc_pages_slowpath()
anymore. The only two tests for the flag can instead call
gfp_pfmemalloc_allowed().

Signed-off-by: Vlastimil Babka <vbabka@xxxxxxx>

Acked-by: David Rientjes <rientjes@xxxxxxxxxx>

Looks good, although maybe a new name for gfp_pfmemalloc_allowed() would
be in order.

I don't disagree... any good suggestions? :)