mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-30 22:43:12 +03:00
malloc: Enable huge page support on main arena
This patch adds support huge page support on main arena allocation, enable with tunable glibc.malloc.hugetlb=2. The patch essentially disable the __glibc_morecore() sbrk() call (similar when memory tag does when sbrk() call does not support it) and fallback to default page size if the memory allocation fails. Checked on x86_64-linux-gnu. Reviewed-by: DJ Delorie <dj@redhat.com>
This commit is contained in:
@ -2741,8 +2741,16 @@ sysmalloc (INTERNAL_SIZE_T nb, mstate av)
|
||||
segregated mmap region.
|
||||
*/
|
||||
|
||||
char *mbrk = sysmalloc_mmap_fallback (&size, nb, old_size, pagesize,
|
||||
MMAP_AS_MORECORE_SIZE, 0, av);
|
||||
char *mbrk = MAP_FAILED;
|
||||
#if HAVE_TUNABLES
|
||||
if (mp_.hp_pagesize > 0)
|
||||
mbrk = sysmalloc_mmap_fallback (&size, nb, old_size,
|
||||
mp_.hp_pagesize, mp_.hp_pagesize,
|
||||
mp_.hp_flags, av);
|
||||
#endif
|
||||
if (mbrk == MAP_FAILED)
|
||||
mbrk = sysmalloc_mmap_fallback (&size, nb, old_size, pagesize,
|
||||
MMAP_AS_MORECORE_SIZE, 0, av);
|
||||
if (mbrk != MAP_FAILED)
|
||||
{
|
||||
/* We do not need, and cannot use, another sbrk call to find end */
|
||||
|
Reference in New Issue
Block a user