glibc/malloc
Siddhesh Poyarekar f4f2ca1509 realloc: Return unchanged if request is within usable size
If there is enough space in the chunk to satisfy the new size, return
the old pointer as is, thus avoiding any locks or reallocations.  The
only real place this has a benefit is in large chunks that tend to get
satisfied with mmap, since there is a large enough spare size (up to a
page) for it to matter.  For allocations on heap, the extra size is
typically barely a few bytes (up to 15) and it's unlikely that it would
make much difference in performance.

Also added a smoke test to ensure that the old pointer is returned
unchanged if the new size to realloc is within usable size of the old
pointer.

Signed-off-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
Reviewed-by: DJ Delorie <dj@redhat.com>
2022-12-08 11:23:43 -05:00
..
alloc_buffer_alloc_array.c malloc: Use uintptr_t in alloc_buffer 2022-10-28 11:16:09 +01:00
alloc_buffer_allocate.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
alloc_buffer_copy_bytes.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
alloc_buffer_copy_string.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
alloc_buffer_create_failure.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
arena.c malloc: Use uintptr_t for pointer alignment 2022-11-01 09:48:22 +00: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 2022-01-01 11:40:24 -08:00
dynarray_emplace_enlarge.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
dynarray_finalize.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
dynarray_resize_clear.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
dynarray_resize.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
dynarray-skeleton.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
dynarray.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
hooks.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
Makefile Remove unused scratch_buffer_dupfree 2022-10-28 18:43:58 +01:00
malloc-check.c malloc: Simplify checked_request2size interface 2022-07-05 11:04:45 +02:00
malloc-debug.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
malloc-internal.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
malloc.c realloc: Return unchanged if request is within usable size 2022-12-08 11:23:43 -05:00
malloc.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -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 2022-01-01 11:40:24 -08:00
mcheck-init.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
mcheck.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
mcheck.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
memusage.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
memusage.sh Update copyright dates not handled by scripts/update-copyrights. 2022-01-01 11:42:26 -08:00
memusagestat.c Update copyright dates not handled by scripts/update-copyrights. 2022-01-01 11:42:26 -08:00
morecore.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
mtrace-impl.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
mtrace.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
mtrace.pl malloc: Remove LD_TRACE_PRELINKING usage from mtrace 2022-02-10 09:16:13 -03:00
obstack.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
obstack.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
reallocarray.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
scratch_buffer_grow_preserve.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
scratch_buffer_grow.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
scratch_buffer_set_array_size.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
set-freeres.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
thread-freeres.c stdlib: Add arc4random, arc4random_buf, and arc4random_uniform (BZ #4417) 2022-07-22 11:58:27 -03:00
tst-alloc_buffer.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-calloc.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-compathooks-off.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -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 2022-01-01 11:40:24 -08:00
tst-dynarray-fail.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-dynarray-shared.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-dynarray.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-free-errno.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-interpose-aux-nothread.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-interpose-aux-thread.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-interpose-aux.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-interpose-aux.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-interpose-nothread.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-interpose-skeleton.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-interpose-static-nothread.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-interpose-static-thread.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-interpose-thread.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-mallinfo2.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-malloc_info.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-malloc-backtrace.c Avoid -Wuse-after-free in tests [BZ #26779]. 2022-01-26 10:38:23 -07:00
tst-malloc-check.c Avoid -Wuse-after-free in tests [BZ #26779]. 2022-01-26 10:38:23 -07:00
tst-malloc-fork-deadlock.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08: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 2022-01-01 11:40:24 -08:00
tst-malloc-thread-exit.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-malloc-thread-fail.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-malloc-too-large.c Avoid -Wuse-after-free in tests [BZ #26779]. 2022-01-26 10:38:23 -07: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 2022-01-01 11:40:24 -08:00
tst-malloc.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-mallocalign1.c malloc: Fix tst-mallocalign1 macro spacing. 2022-02-01 11:05:26 -05:00
tst-mallocfork2.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-mallocfork3.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -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 2022-01-01 11:40:24 -08:00
tst-mallopt.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-memalign.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-mtrace.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-mtrace.sh Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-mxfast.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -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 2022-01-01 11:40:24 -08:00
tst-pvalloc-fortify.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-pvalloc.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-realloc.c realloc: Return unchanged if request is within usable size 2022-12-08 11:23:43 -05:00
tst-reallocarray.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-safe-linking.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-scratch_buffer.c Remove unused scratch_buffer_dupfree 2022-10-28 18:43:58 +01:00
tst-tcfree1.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-tcfree2.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-tcfree3.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-trim1.c
tst-valloc.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
Versions Remove unused scratch_buffer_dupfree 2022-10-28 18:43:58 +01:00