[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <2a7e000c-f075-487e-a750-1fa8d29adfe8@arm.com>
Date: Mon, 22 Sep 2025 11:32:57 +0530
From: Anshuman Khandual <anshuman.khandual@....com>
To: Dev Jain <dev.jain@....com>, akpm@...ux-foundation.org
Cc: rppt@...nel.org, ryan.roberts@....com, linux-mm@...ck.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH] mm: Remove PMD alignment constraint in execmem_vmalloc()
On 18/09/25 3:04 PM, Dev Jain wrote:
> When using vmalloc with VM_ALLOW_HUGE_VMAP flag, it will set the alignment
> to PMD_SIZE internally, if it deems huge mappings to be eligible.
> Therefore, setting the alignment in execmem_vmalloc is redundant. Apart
> from this, it also reduces the probability of allocation in case vmalloc
> fails to allocate hugepages - in the fallback case, vmalloc tries to use
> the original alignment and allocate basepages, which unfortunately will
> again be PMD_SIZE passed over from execmem_vmalloc, thus constraining
> the search for a free space in vmalloc region.
>
> Therefore, remove this constraint.
>
> Signed-off-by: Dev Jain <dev.jain@....com>
> ---
> mm-selftests pass, but I am not sure if they touch execmem code, and I
> have no experience with this code.
>
> mm/execmem.c | 3 ---
> 1 file changed, 3 deletions(-)
>
> diff --git a/mm/execmem.c b/mm/execmem.c
> index 0822305413ec..810a4ba9c924 100644
> --- a/mm/execmem.c
> +++ b/mm/execmem.c
> @@ -38,9 +38,6 @@ static void *execmem_vmalloc(struct execmem_range *range, size_t size,
> if (kasan)
> vm_flags |= VM_DEFER_KMEMLEAK;
>
> - if (vm_flags & VM_ALLOW_HUGE_VMAP)
> - align = PMD_SIZE;
> -
So if the above assignment is getting dropped here, probably the local
variable 'align' could be dropped as well and range->alignment be used
directly instead ?
> p = __vmalloc_node_range(size, align, start, end, gfp_flags,
> pgprot, vm_flags, NUMA_NO_NODE,
> __builtin_return_address(0));
Powered by blists - more mailing lists