Changes v2 => v3: 1. Use __vmalloc_huge in alloc_large_system_hash. 2. Use EXPORT_SYMBOL_GPL for new functions. (Christoph Hellwig) 3. Add more description about the issues and changes.(Christoph Hellwig, Rick Edgecombe). Changes v1 => v2: 1. Add vmalloc_huge(). (Christoph Hellwig) 2. Add module_alloc_huge(). (Christoph Hellwig) 3. Add Fixes tag and Link tag. (Thorsten Leemhuis) Enabling HAVE_ARCH_HUGE_VMALLOC on x86_64 and use it for bpf_prog_pack has caused some issues [1], as many users of vmalloc are not yet ready to handle huge pages. To enable a more smooth transition to use huge page backed vmalloc memory, this set replaces VM_NO_HUGE_VMAP flag with an new opt-in flag, VM_ALLOW_HUGE_VMAP. More discussions about this topic can be found at [2]. Patch 1 removes VM_NO_HUGE_VMAP and adds VM_ALLOW_HUGE_VMAP. Patch 2 uses VM_ALLOW_HUGE_VMAP in bpf_prog_pack. [1] https://lore.kernel.org/lkml/20220204185742.271030-1-song@xxxxxxxxxx/ [2] https://lore.kernel.org/linux-mm/20220330225642.1163897-1-song@xxxxxxxxxx/ Song Liu (4): vmalloc: replace VM_NO_HUGE_VMAP with VM_ALLOW_HUGE_VMAP page_alloc: use __vmalloc_huge for large system hash module: introduce module_alloc_huge bpf: use module_alloc_huge for bpf_prog_pack arch/Kconfig | 6 ++---- arch/powerpc/kernel/module.c | 2 +- arch/s390/kvm/pv.c | 2 +- arch/x86/kernel/module.c | 21 +++++++++++++++++++++ include/linux/moduleloader.h | 5 +++++ include/linux/vmalloc.h | 5 +++-- kernel/bpf/core.c | 7 ++++--- kernel/module.c | 5 +++++ mm/page_alloc.c | 2 +- mm/vmalloc.c | 34 ++++++++++++++++++++++++++++------ 10 files changed, 71 insertions(+), 18 deletions(-) -- 2.30.2