glibc/malloc
DJ Delorie 24cdd6c71d memalign: Support scanning for aligned chunks.
This patch adds a chunk scanning algorithm to the _int_memalign code
path that reduces heap fragmentation by reusing already aligned chunks
instead of always looking for chunks of larger sizes and splitting
them.  The tcache macros are extended to allow removing a chunk from
the middle of the list.

The goal is to fix the pathological use cases where heaps grow
continuously in workloads that are heavy users of memalign.

Note that tst-memalign-2 checks for tcache operation, which
malloc-check bypasses.

Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>
2023-03-29 16:36:03 -04:00
..
Depend
Makefile memalign: Support scanning for aligned chunks. 2023-03-29 16:36:03 -04:00
Versions
alloc_buffer_alloc_array.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
alloc_buffer_allocate.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
alloc_buffer_copy_bytes.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
alloc_buffer_copy_string.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
alloc_buffer_create_failure.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
arena.c Remove --enable-tunables configure option 2023-03-29 14:33:06 -03:00
dynarray-skeleton.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
dynarray.h Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
dynarray_at_failure.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
dynarray_emplace_enlarge.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
dynarray_finalize.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
dynarray_resize.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
dynarray_resize_clear.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
hooks.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
malloc-check.c Remove --enable-tunables configure option 2023-03-29 14:33:06 -03:00
malloc-debug.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
malloc-internal.h Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
malloc.c memalign: Support scanning for aligned chunks. 2023-03-29 16:36:03 -04:00
malloc.h Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
mallocbug.c
mcheck-impl.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
mcheck-init.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
mcheck.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
mcheck.h Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
memusage.c malloc: Use C11 atomics on memusage 2023-03-29 17:13:36 -03:00
memusage.sh Update copyright dates not handled by scripts/update-copyrights 2023-01-06 21:45:36 +00:00
memusagestat.c Update copyright dates not handled by scripts/update-copyrights 2023-01-06 21:45:36 +00:00
morecore.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
mtrace-impl.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
mtrace.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
mtrace.pl Update copyright dates not handled by scripts/update-copyrights 2023-01-06 21:45:36 +00:00
obstack.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
obstack.h Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
reallocarray.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
scratch_buffer_grow.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
scratch_buffer_grow_preserve.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
scratch_buffer_set_array_size.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
set-freeres.c Allow building with --disable-nscd again 2023-03-28 10:16:17 -03:00
thread-freeres.c Move libc_freeres_ptrs and libc_subfreeres to hidden/weak functions 2023-03-27 13:57:55 -03:00
tst-alloc_buffer.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-calloc.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-compathooks-off.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-compathooks-on.c
tst-dynarray-at-fail.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-dynarray-fail.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-dynarray-shared.h Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-dynarray.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-free-errno.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-interpose-aux-nothread.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-interpose-aux-thread.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-interpose-aux.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-interpose-aux.h Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-interpose-nothread.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-interpose-skeleton.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-interpose-static-nothread.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-interpose-static-thread.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-interpose-thread.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-mallinfo2.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-malloc-backtrace.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-malloc-check.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-malloc-fork-deadlock.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-malloc-stats-cancellation.c
tst-malloc-tcache-leak.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-malloc-thread-exit.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-malloc-thread-fail.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-malloc-too-large.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-malloc-usable-tunables.c
tst-malloc-usable.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-malloc.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-malloc_info.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-mallocalign1.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-mallocfork.c
tst-mallocfork2.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-mallocfork3.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-mallocstate.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-mallopt.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-memalign-2.c memalign: Support scanning for aligned chunks. 2023-03-29 16:36:03 -04:00
tst-memalign.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-mtrace.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-mtrace.sh Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-mxfast.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-obstack.c
tst-posix_memalign.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-pvalloc-fortify.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-pvalloc.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-realloc.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-reallocarray.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-safe-linking.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-scratch_buffer.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-tcfree1.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-tcfree2.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-tcfree3.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-trim1.c
tst-valloc.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00