How to make jemalloc to use transparent huge pages?

129 views Asked by At

I want jemalloc to use transparent huge pages.

My environment parameter are as follows:

echo $MALLOC_CONF
"thp:always,prof:false,prof_active:false,trust_madvise:false"

However, kernel THP were not enabled. When I set /sys/kernel/mm/transparent_hugepage/enabled to madvise and execute the command grep Huge /proc/meminfo, the field AnonHugePages did not increase. As a comparison, when /sys/kernel/mm/transparent_hugepage/enabled is set to always, the field AnonHugePages increases significantly.

I examined the parameter passed to kernel do_madvise() function and found that there are no function calls in the system that use MADV_HUGEPAGE parameter, which differs from the document:

The "always" setting enables transparent hugepage for all user memory mappings with MADV_HUGEPAGE

Moreover, with current MALLOC_CONF, jemalloc report message of stderr F <jemalloc>: Malformed conf string. I tried with method from this issue, but didn't help.

How can jemalloc use THP without recompiling and affecting other processes?

0

There are 0 answers