.A new tunable for changing the maximum fastbin size in `glibc`
The `malloc` function uses a series of fastbins that hold reusable memory chunks up to a specific size. The default maximum chunk size is 80 bytes on 32-bit systems and 160 bytes on 64-bit systems. This enhancement introduces a new `glibc.malloc.mxfast` tunable to `glibc` that enables you to change the maximum fastbin size.
We should backport the following enhancements:
commit c48d92b430c480de06762f80c104922239416826
Author: DJ Delorie <dj>
Date: Thu Aug 8 19:09:43 2019 -0400
Add glibc.malloc.mxfast tunable
* elf/dl-tunables.list: Add glibc.malloc.mxfast.
* manual/tunables.texi: Document it.
* malloc/malloc.c (do_set_mxfast): New.
(__libc_mallopt): Call it.
* malloc/arena.c: Add mxfast tunable.
* malloc/tst-mxfast.c: New.
* malloc/Makefile: Add it.
Reviewed-by: Carlos O'Donell <carlos>
commit f9769a239784772453d595bc2f4bed8739810e06
Author: Florian Weimer <fweimer>
Date: Thu Aug 15 11:37:18 2019 +0200
malloc: Various cleanups for malloc/tst-mxfast
We also need to fix the upstream bug, <https://sourceware.org/bugzilla/show_bug.cgi?id=24903>, or at least XFAIL the test (upstream and downstream). Currently, malloc/tst-mxfast fails on i686.
This additional commit was needed in order to fix a bug in set_max_fast
that caused a testsuite failure on i386:
commit ff12e0fb91b9072800f031cb21fb2651ee7b6251
Author: DJ Delorie <dj>
Date: Wed Oct 30 18:03:14 2019 -0400
Base max_fast on alignment, not width, of bins (Bug 24903)
set_max_fast sets the "impossibly small" value based on,
eventually, MALLOC_ALIGNMENT. The comparisons for the smallest
chunk used is, eventually, MIN_CHUNK_SIZE. Note that i386
is the only platform where these are the same, so a smallest
chunk *would* be put in a no-fastbins fastbin.
This change calculates the "impossibly small" value
based on MIN_CHUNK_SIZE instead, so that we can know it will
always be impossibly small.
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.
For information on the advisory, and where to find the updated
files, follow the link below.
If the solution does not work for you, open a new bug report.
https://access.redhat.com/errata/RHSA-2020:1828
We should backport the following enhancements: commit c48d92b430c480de06762f80c104922239416826 Author: DJ Delorie <dj> Date: Thu Aug 8 19:09:43 2019 -0400 Add glibc.malloc.mxfast tunable * elf/dl-tunables.list: Add glibc.malloc.mxfast. * manual/tunables.texi: Document it. * malloc/malloc.c (do_set_mxfast): New. (__libc_mallopt): Call it. * malloc/arena.c: Add mxfast tunable. * malloc/tst-mxfast.c: New. * malloc/Makefile: Add it. Reviewed-by: Carlos O'Donell <carlos> commit f9769a239784772453d595bc2f4bed8739810e06 Author: Florian Weimer <fweimer> Date: Thu Aug 15 11:37:18 2019 +0200 malloc: Various cleanups for malloc/tst-mxfast We also need to fix the upstream bug, <https://sourceware.org/bugzilla/show_bug.cgi?id=24903>, or at least XFAIL the test (upstream and downstream). Currently, malloc/tst-mxfast fails on i686.