]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
malloc: Enable 2MB THP by default on Aarch64
authorDev Jain <dev.jain@arm.com>
Wed, 10 Dec 2025 14:50:44 +0000 (14:50 +0000)
committerWilco Dijkstra <wilco.dijkstra@arm.com>
Wed, 10 Dec 2025 14:51:49 +0000 (14:51 +0000)
Add missing files from previous commit.

sysdeps/generic/malloc-hugepages.h
sysdeps/unix/sysv/linux/aarch64/malloc-hugepages.h [new file with mode: 0644]
sysdeps/unix/sysv/linux/malloc-hugepages.c

index 076f03d68a1b07339ad0cc5618c3d561f6a654ee..9c034e86c87bb0aee13c5f2da7f105db0406a0d5 100644 (file)
@@ -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 (file)
index 0000000..f432ff7
--- /dev/null
@@ -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 <https://www.gnu.org/licenses/>.  */
+
+# define DEFAULT_THP_PAGESIZE  1UL << 21
+
+#include_next <malloc-hugepages.h>
index e23cdfb6b72ff31c5c449e378181b674827b7c21..9776ba4c35ddd4ea1d65dcd707cdd0b05d6ccce8 100644 (file)
@@ -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)