------------------ Original ------------------ From: "Adhemerval Zanella Netto" <adhemerval.zanella@linaro.org>; Date: Mon, Oct 10, 2022 08:11 PM To: "Zhangfei Gao"<zhangfei.gao@linaro.org>;
Subject: Re: query about glibc 2.35 hugetlb
On 10/10/22 04:54, Zhangfei Gao wrote: > Hi, Adhemerval >
Hi Zhangfei Gao,
> We are using libhugetlbfs feature to concur the tlb miss issue. > LD_PRELOAD=/usr/lib/aarch64-linux-gnu/libhugetlbfs.so HUGETLB_MORECORE=yes app > > Happened to find morecore will be deprecated in glibc, 2.32+
The bug reports is incorrect, it was deprecated in glibc 2.34 and I have implemented glibc.malloc.hugetlb for 2.35. So only glibc 2.34 does not have a way to explicit back up malloc allocation with hugetbl without using a full allocation (such as jemalloc or tcmalloc).
> https://github.com/libhugetlbfs/libhugetlbfs/issues/52 > > Thanks for your patch adding glibc.malloc.hugetlb. > But still don't know how to use this feature. > >> If using glibc 2.35, do we still need libhugetlbfs.so?
It will depends whether your application need to use HUGETLB_ELFMAP and/or HUGETLB_SHM since it is not implemented on glibc. The HUGETLB_ELFMAP requires a lot of hacks and kernel/toolchain have worked to make THP to work better with text and data segments, and I think it is unlikely that we will support on glibc anytime soon (it will most likely require changes in the ELF gnu extension to explicit use huge pages).
For HUGETLB_SHM it should be easy to adapt the code to align to page size and add SHM_HUGETLB. I think it might be doable to add support on glibc with an extra tunable as well to avoid code changes in the application. I still prefer to adapt the the application itself because libhugetlbfs subtly change shmget semantic under the hood (by changing memory alignment and segment).
>> Or just run "GLIBC_TUNABLES=glibc.malloc.hugetlb=2 app"? Based on the command line you pasted, it should be only that. It will cover all memory allocation done by malloc.
> > I am still in checking how to upgrading to glibc 2.35 in system.
Carlos O'Donnel from RH was thinking about backporting to old releases if