glibc/malloc
Dev Jain fa5d1b5419 malloc: Do not call madvise if oldsize >= THP size
Linux handles virtual memory in Virtual Memory Areas (VMAs). The
madvise(MADV_HUGEPAGE) call works on a VMA granularity, which sets the
VM_HUGEPAGE flag on the VMA. If this VMA or a portion of it is mremapped
to a different location, Linux will create a new VMA, which will have
the same flags as the old one. This implies that the VM_HUGEPAGE flag
will be retained. Therefore, if we can guarantee that the old VMA was
marked with VM_HUGEPAGE, then there is no need to call madvise_thp() in
mremap_chunk().

The old chunk comes from a heap or non-heap allocation, both of which
have already been enlightened for THP. This implies that, if THP is on,
and the size of the old chunk is greater than or equal to thp_pagesize,
the VMA to which this chunk belongs to, has the VM_HUGEPAGE flag set.
Hence in this case we can avoid invoking the madvise() syscall.

Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>
2025-10-08 12:59:30 +00:00
..
Depend
Makefile malloc: add tst-mxfast to hugetlb exclusion list 2025-08-29 13:22:19 -04:00
Versions
alloc_buffer_alloc_array.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
alloc_buffer_allocate.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
alloc_buffer_copy_bytes.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
alloc_buffer_copy_string.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
alloc_buffer_create_failure.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
arena.c malloc: Hoist common unlock out of if-else control block 2025-09-18 15:50:15 -04:00
dynarray-skeleton.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
dynarray.h Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
dynarray_at_failure.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
dynarray_emplace_enlarge.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
dynarray_finalize.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
dynarray_resize.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
dynarray_resize_clear.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
hooks.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
malloc-check.c malloc: Cleanup macros, asserts and sysmalloc_mmap_fallback 2025-10-03 16:34:10 +00:00
malloc-debug.c atomic: Remove atomic_forced_read 2025-10-08 12:59:30 +00:00
malloc-internal.h malloc: Improve malloc initialization 2025-05-12 16:10:28 +00:00
malloc.c malloc: Do not call madvise if oldsize >= THP size 2025-10-08 12:59:30 +00:00
malloc.h Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
mallocbug.c
mcheck-impl.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
mcheck-init.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
mcheck.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
mcheck.h Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
memusage.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
memusage.sh Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
memusagestat.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
morecore.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
mtrace-impl.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
mtrace.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
mtrace.pl Update copyright dates not handled by scripts/update-copyrights 2025-01-01 11:22:09 -08:00
obstack.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
obstack.h Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
reallocarray.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
scratch_buffer_grow.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
scratch_buffer_grow_preserve.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
scratch_buffer_set_array_size.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
set-freeres.c elf: Merge __dl_libc_freemem into __rtld_libc_freeres 2025-02-02 20:10:09 +01:00
thread-freeres.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-aligned-alloc-random-thread-cross.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-aligned-alloc-random-thread.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-aligned-alloc-random.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-aligned-alloc-static.c
tst-aligned-alloc.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-aligned_alloc-lib.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-alloc_buffer.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-calloc.c malloc: cleanup casts in tst-calloc 2025-01-25 05:34:05 +00:00
tst-compathooks-off.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-compathooks-on.c
tst-dynarray-at-fail.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-dynarray-fail.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-dynarray-shared.h Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-dynarray.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-free-errno.c malloc: Fix tst bug in malloc/tst-free-errno-malloc-hugetlb1. 2025-08-19 09:05:32 +08:00
tst-interpose-aux-nothread.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-interpose-aux-thread.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-interpose-aux.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-interpose-aux.h Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-interpose-nothread.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-interpose-skeleton.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-interpose-static-nothread.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-interpose-static-thread.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-interpose-thread.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-mallinfo2.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-malloc-alternate-path.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-malloc-aux.h Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-malloc-backtrace.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-malloc-check.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-malloc-fork-deadlock.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-malloc-random.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-malloc-stats-cancellation.c
tst-malloc-tcache-leak.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-malloc-thread-exit.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-malloc-thread-fail.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-malloc-too-large.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-malloc-usable-tunables.c
tst-malloc-usable.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-malloc.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-malloc_info.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-mallocalign1.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-mallocfork.c
tst-mallocfork2.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-mallocfork3.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-mallocstate.c malloc: Remove dumped heap support 2025-09-19 13:11:56 +00:00
tst-mallopt.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-memalign-2.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-memalign-3.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-memalign.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-mtrace.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-mtrace.sh Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-mxfast.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-obstack.c
tst-posix_memalign.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-pvalloc-fortify.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-pvalloc.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-realloc.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-reallocarray.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-safe-linking.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-scratch_buffer.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-tcfree1.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-tcfree2.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-tcfree3.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-tcfree4.c malloc: Improved double free detection in the tcache 2025-05-12 11:58:30 +00:00
tst-trim1.c
tst-valloc.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00