• Nicholas Piggin's avatar
    mm/vmalloc: hugepage vmalloc mappings · 121e6f32
    Nicholas Piggin authored
    Support huge page vmalloc mappings.  Config option HAVE_ARCH_HUGE_VMALLOC
    enables support on architectures that define HAVE_ARCH_HUGE_VMAP and
    supports PMD sized vmap mappings.
    
    vmalloc will attempt to allocate PMD-sized pages if allocating PMD size or
    larger, and fall back to small pages if that was unsuccessful.
    
    Architectures must ensure that any arch specific vmalloc allocations that
    require PAGE_SIZE mappings (e.g., module allocations vs strict module rwx)
    use the VM_NOHUGE flag to inhibit larger mappings.
    
    This can result in more internal fragmentation and memory overhead for a
    given allocation, an option nohugevmalloc is added to disable at boot.
    
    [colin.king@canonical.com: fix read of uninitialized pointer area]
      Link: https://lkml.kernel.org/r/20210318155955.18220-1-colin.king@canonical.com
    
    Link: https://lkml.kernel.org/r/20210317062402.533919-14-npiggin@gmail.comSigned-off-by: default avatarNicholas Piggin <npiggin@gmail.com>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: Christoph Hellwig <hch@lst.de>
    Cc: Ding Tianhong <dingtianhong@huawei.com>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Miaohe Lin <linmiaohe@huawei.com>
    Cc: Michael Ellerman <mpe@ellerman.id.au>
    Cc: Russell King <linux@armlinux.org.uk>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Uladzislau Rezki (Sony) <urezki@gmail.com>
    Cc: Will Deacon <will@kernel.org>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    121e6f32
page_alloc.c 249 KB