[PATCH v5 7/7] malloc: Enable huge page support on main arena

DJ Delorie dj@redhat.com
Wed Dec 15 04:59:19 GMT 2021


LGTM
Reviewed-by: DJ Delorie <dj@redhat.com>

Adhemerval Zanella via Libc-alpha <libc-alpha@sourceware.org> writes:
> diff --git a/malloc/arena.c b/malloc/arena.c
>  # endif
>    TUNABLE_GET (mxfast, size_t, TUNABLE_CALLBACK (set_mxfast));
>    TUNABLE_GET (hugetlb, int32_t, TUNABLE_CALLBACK (set_hugetlb));
> +  if (mp_.hp_pagesize > 0)
> +    /* Force mmap for main arena instead of sbrk, so hugepages are explicitly
> +       used.  */
> +    __always_fail_morecore = true;

Ok.

> diff --git a/malloc/malloc.c b/malloc/malloc.c
>             */
>  
> -	  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);

Ok.

> diff --git a/malloc/morecore.c b/malloc/morecore.c
>     License along with the GNU C Library; if not, see
>     <https://www.gnu.org/licenses/>.  */
>  
> -#if defined(SHARED) || defined(USE_MTAG)
>  static bool __always_fail_morecore = false;
> -#endif

Ok.

> @@ -25,10 +23,8 @@ static bool __always_fail_morecore = false;
>  void *
>  __glibc_morecore (ptrdiff_t increment)
>  {
> -#if defined(SHARED) || defined(USE_MTAG)
>    if (__always_fail_morecore)
>      return NULL;
> -#endif

Ok.



More information about the Libc-alpha mailing list