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

From: David Rientjes
Date: Tue Jul 19 2016 - 18:28:43 EST


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.