From: Dev Jain Date: Wed, 10 Dec 2025 14:50:44 +0000 (+0000) Subject: malloc: Enable 2MB THP by default on Aarch64 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7cee1b4b40c6b0d6498a92decbfb397ef6ffe96a;p=thirdparty%2Fglibc.git malloc: Enable 2MB THP by default on Aarch64 Add missing files from previous commit. --- diff --git a/sysdeps/generic/malloc-hugepages.h b/sysdeps/generic/malloc-hugepages.h index 076f03d68a..9c034e86c8 100644 --- a/sysdeps/generic/malloc-hugepages.h +++ b/sysdeps/generic/malloc-hugepages.h @@ -41,4 +41,8 @@ enum malloc_thp_mode_t __malloc_thp_mode (void) attribute_hidden; void __malloc_hugepage_config (size_t requested, size_t *pagesize, int *flags) attribute_hidden; +#ifndef DEFAULT_THP_PAGESIZE +# define DEFAULT_THP_PAGESIZE 0 +#endif + #endif /* _MALLOC_HUGEPAGES_H */ diff --git a/sysdeps/unix/sysv/linux/aarch64/malloc-hugepages.h b/sysdeps/unix/sysv/linux/aarch64/malloc-hugepages.h new file mode 100644 index 0000000000..f432ff7f0c --- /dev/null +++ b/sysdeps/unix/sysv/linux/aarch64/malloc-hugepages.h @@ -0,0 +1,21 @@ +/* Huge Page support. Aarch64 Linux implementation. + Copyright (C) 2021-2025 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public License as + published by the Free Software Foundation; either version 2.1 of the + License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; see the file COPYING.LIB. If + not, see . */ + +# define DEFAULT_THP_PAGESIZE 1UL << 21 + +#include_next diff --git a/sysdeps/unix/sysv/linux/malloc-hugepages.c b/sysdeps/unix/sysv/linux/malloc-hugepages.c index e23cdfb6b7..9776ba4c35 100644 --- a/sysdeps/unix/sysv/linux/malloc-hugepages.c +++ b/sysdeps/unix/sysv/linux/malloc-hugepages.c @@ -25,6 +25,9 @@ unsigned long int __malloc_default_thp_pagesize (void) { + if (DEFAULT_THP_PAGESIZE != 0) + return DEFAULT_THP_PAGESIZE; + int fd = __open64_nocancel ( "/sys/kernel/mm/transparent_hugepage/hpage_pmd_size", O_RDONLY); if (fd == -1)