glibc/malloc
Wilco Dijkstra b0897944cc malloc: Improve performance of __libc_malloc
Improve performance of __libc_malloc by splitting it into 2 parts: first handle
the tcache fastpath, then do the rest in a separate tailcalled function.
This results in significant performance gains since __libc_malloc doesn't need
to setup a frame and we delay tcache initialization and setting of errno until
later.

On Neoverse V2, bench-malloc-simple improves by 6.7% overall (up to 8.5% for
ST case) and bench-malloc-thread improves by 20.3% for 1 thread and 14.4% for
32 threads.

Reviewed-by: DJ Delorie <dj@redhat.com>
2025-03-28 15:31:34 +00:00
..
Depend
Makefile Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
Versions Remove unused scratch_buffer_dupfree 2022-10-28 18:43:58 +01:00
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: Use __always_inline for simple functions 2025-03-26 13:17:51 +00: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 Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
malloc-debug.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
malloc-internal.h Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
malloc.c malloc: Improve performance of __libc_malloc 2025-03-28 15:31:34 +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 aligned_alloc: conform to C17 2023-05-08 16:40:10 -04:00
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 Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -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 Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08: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 Avoid -Wuse-after-free in tests [BZ #26779]. 2022-01-26 10:38:23 -07:00
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-trim1.c
tst-valloc.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00