Messages in this thread | | | From | Mike Rapoport <> | Subject | [PATCH 0/4] x86/mm: replace GFP_ATOMIC with GFP_KERNEL for direct map allocations | Date | Thu, 11 Nov 2021 13:02:37 +0200 |
| |
From: Mike Rapoport <rppt@linux.ibm.com>
Hi,
The direct map pages on x86 that are allocated using alloc_low_pages() and spp_getpage() functions. When these functions take 'after_bootmem' branch, the memory is allocated from buddy with GFP_ATOMIC and I could not find any reason for this.
Since most of the kernel page tables are anyway allocated really early, only GART IOMMU initialization and memory hotplug would actually use get_free_pages() to allocate direct map entries and neither of them happen in an atomic context, so it would be fine to use GFP_KERNEL. This will give the page allocator more flexibility when memory hotplug creates the direct map for hot-added memory and won't use precious atomic memory resources.
The first three patches are trivial cleanups I've encountered while analysing call paths of alloc_low_pages() and spp_getpage() and the fourth patch actually replaces GFP_ATOMIC with GFP_KERNEL in those functions.
Mike Rapoport (4): x86/mm: make init_trampoline_kaslr() __init x86/mm: make kernel_physical_mapping_change() __init x86/mm: init_64: make set_pte_vaddr_p4d static x86/mm: replace GFP_ATOMIC with GFP_KERNEL for direct map allocations
arch/x86/include/asm/pgtable_64.h | 1 - arch/x86/mm/init.c | 2 +- arch/x86/mm/init_64.c | 7 ++++--- arch/x86/mm/kaslr.c | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-)
base-commit: d2f38a3c6507b2520101f9a3807ed98f1bdc545a -- 2.28.0
| |