Re: [PATCH 4/4] x86/mm: replace GFP_ATOMIC with GFP_KERNEL for direct map allocations

From: Edgecombe, Rick P
Date: Fri Nov 12 2021 - 17:39:22 EST


On Fri, 2021-11-12 at 14:30 +0200, Mike Rapoport wrote:
> The fixmap is less 2M so all the page tables will be allocated from
> gpt
> cache/memblock so __set_fixmap() will be essentially a call to
> set_pte().

If you configure CONFIG_DEBUG_KMAP_LOCAL_FORCE_MAP it can be larger.

>
> I'll see how to ensure that page tables for ghex fixmaps are
> explicitly
> preallocated at init time.
>

Investigating a bit further, fixmap pte's are allocated statically with
level1_fixmap_pgt, so set_fixmap() should never call spp_getpage() pre
or post after_bootmem. So I guess GFP_KERNEL shouldn't come into play
for all the fixmap callers.

Thanks!

Reviewed-by: Rick Edgecombe <rick.p.edgecombe@xxxxxxxxx>