glibc/malloc
Wangyang Guo c69e8cccaf malloc: Avoid func call for tcache quick path in free()
Tcache is an important optimzation to accelerate memory free(), things
within this code path should be kept as simple as possible. This commit
try to remove the function call when free() invokes tcache code path by
inlining _int_free().

Result of bench-malloc-thread benchmark

Test Platform: Xeon-8380
Ratio: New / Original time_per_iteration (Lower is Better)

Threads#   | Ratio
-----------|------
1 thread   | 0.879
4 threads  | 0.874

The performance data shows it can improve bench-malloc-thread benchmark
by ~12% in both single thread and multi-thread scenario.
Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
2024-11-27 08:24:09 +08:00
..
alloc_buffer_alloc_array.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
alloc_buffer_allocate.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
alloc_buffer_copy_bytes.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
alloc_buffer_copy_string.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
alloc_buffer_create_failure.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
arena.c Silence most -Wzero-as-null-pointer-constant diagnostics 2024-11-25 16:45:59 -03:00
Depend added rt to malloc/Depend [BZ #27132] 2021-02-23 10:04:45 +01:00
dynarray_at_failure.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
dynarray_emplace_enlarge.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
dynarray_finalize.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
dynarray_resize_clear.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
dynarray_resize.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
dynarray-skeleton.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
dynarray.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
hooks.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
Makefile malloc: Link threading tests with $(shared-thread-library) 2024-08-20 16:16:25 +02:00
malloc-check.c Silence most -Wzero-as-null-pointer-constant diagnostics 2024-11-25 16:45:59 -03:00
malloc-debug.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
malloc-internal.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
malloc.c malloc: Avoid func call for tcache quick path in free() 2024-11-27 08:24:09 +08:00
malloc.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
mallocbug.c Reformat malloc to gnu style. 2014-01-02 09:40:10 +01:00
mcheck-impl.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
mcheck-init.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
mcheck.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
mcheck.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
memusage.c Fix usage of _STACK_GROWS_DOWN and _STACK_GROWS_UP defines [BZ 31989] 2024-07-19 10:10:17 -04:00
memusage.sh Update copyright dates not handled by scripts/update-copyrights 2024-01-01 10:53:40 -08:00
memusagestat.c Update copyright dates not handled by scripts/update-copyrights 2024-01-01 10:53:40 -08:00
morecore.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
mtrace-impl.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
mtrace.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
mtrace.pl mtrace: make shell commands robust against meta characters 2024-06-24 09:33:49 +02:00
obstack.c Silence most -Wzero-as-null-pointer-constant diagnostics 2024-11-25 16:45:59 -03:00
obstack.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
reallocarray.c Silence most -Wzero-as-null-pointer-constant diagnostics 2024-11-25 16:45:59 -03:00
scratch_buffer_grow_preserve.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
scratch_buffer_grow.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
scratch_buffer_set_array_size.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
set-freeres.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
thread-freeres.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-aligned_alloc-lib.c malloc: avoid global locks in tst-aligned_alloc-lib.c 2024-07-22 11:54:46 +02:00
tst-aligned-alloc-random-thread-cross.c malloc: add multi-threaded tests for aligned_alloc/calloc/malloc 2024-07-22 11:54:46 +02:00
tst-aligned-alloc-random-thread.c malloc: add multi-threaded tests for aligned_alloc/calloc/malloc 2024-07-22 11:54:46 +02:00
tst-aligned-alloc-random.c malloc: Improve aligned_alloc and calloc test coverage. 2024-05-14 14:36:50 +00: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 2024-01-01 10:53:40 -08:00
tst-alloc_buffer.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-calloc.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-compathooks-off.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-compathooks-on.c Move malloc hooks into a compat DSO 2021-07-22 18:37:59 +05:30
tst-dynarray-at-fail.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-dynarray-fail.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-dynarray-shared.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-dynarray.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-free-errno.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-interpose-aux-nothread.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-interpose-aux-thread.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-interpose-aux.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-interpose-aux.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-interpose-nothread.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-interpose-skeleton.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-interpose-static-nothread.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-interpose-static-thread.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-interpose-thread.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-mallinfo2.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-malloc_info.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-malloc-alternate-path.c malloc: New test to check malloc alternate path using memory obstruction 2024-06-04 18:00:29 +02:00
tst-malloc-backtrace.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-malloc-check.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-malloc-fork-deadlock.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-malloc-random.c malloc: Improve aligned_alloc and calloc test coverage. 2024-05-14 14:36:50 +00:00
tst-malloc-stats-cancellation.c malloc: Run tst-malloc-stats-cancellation via test-driver.c 2021-04-07 02:35:50 +02:00
tst-malloc-tcache-leak.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-malloc-thread-exit.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-malloc-thread-fail.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-malloc-too-large.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-malloc-usable-tunables.c Initialize tunable list with the GLIBC_TUNABLES environment variable 2016-12-31 23:49:24 +05:30
tst-malloc-usable.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-malloc.c malloc: Improve aligned_alloc and calloc test coverage. 2024-05-14 14:36:50 +00:00
tst-mallocalign1.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-mallocfork2.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-mallocfork3.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-mallocfork.c Fix malloc tests build with GCC 10. 2019-06-10 22:12:08 +00:00
tst-mallocstate.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-mallopt.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-memalign-2.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-memalign-3.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-memalign.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-mtrace.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-mtrace.sh Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-mxfast.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -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 2024-01-01 10:53:40 -08:00
tst-pvalloc-fortify.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-pvalloc.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-realloc.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-reallocarray.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-safe-linking.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-scratch_buffer.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-tcfree1.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-tcfree2.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-tcfree3.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-trim1.c
tst-valloc.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
Versions Remove unused scratch_buffer_dupfree 2022-10-28 18:43:58 +01:00