malloc: Improve documentation of malloc tunables

Message ID PAWPR08MB8982F85AB054D2558ACF9FEE83122@PAWPR08MB8982.eurprd08.prod.outlook.com (mailing list archive)
State Committed
Headers
Series malloc: Improve documentation of malloc tunables |

Checks

Context Check Description
redhat-pt-bot/TryBot-apply_patch fail Patch failed to apply to master at the time it was sent
redhat-pt-bot/TryBot-32bit fail Patch series failed to apply

Commit Message

Wilco Dijkstra June 2, 2026, 5:10 p.m. UTC
  ping
 

Update default for tcache_count tunable.  Remove existing documentation and
mention removal of fastbins in mxfast tunable.  Improve wording of hugetlb
tunable, including default for AArch64.

OK for commit?

---
  

Comments

Adhemerval Zanella Netto June 2, 2026, 7:35 p.m. UTC | #1
On 02/06/26 14:10, Wilco Dijkstra wrote:
> ping
>  
> 
> Update default for tcache_count tunable.  Remove existing documentation and
> mention removal of fastbins in mxfast tunable.  Improve wording of hugetlb
> tunable, including default for AArch64.
> 
> OK for commit?
> 

LGTM, thanks.

Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>

> ---
> 
> diff --git a/manual/tunables.texi b/manual/tunables.texi
> index 72769428e8cac27723fdec9ad83a92dc0b27415a..5850945a59e8494a2bb315da5a3e919112c5c562 100644
> --- a/manual/tunables.texi
> +++ b/manual/tunables.texi
> @@ -231,37 +231,29 @@ per-thread cache.  The default (and maximum) value is 1032 bytes on
>  @end deftp
>  
>  @deftp Tunable glibc.malloc.tcache_count
> -The maximum number of chunks of each size to cache. The default is 7.
> +The maximum number of chunks of each size to cache. The default is 16.
>  The upper limit is 65535.  If set to zero, the per-thread cache is effectively
>  disabled.
>  
>  The approximate maximum overhead of the per-thread cache is thus equal
>  to the number of bins times the chunk count in each bin times the size
> -of each chunk.  With defaults, the approximate maximum overhead of the
> -per-thread cache is approximately 236 KB on 64-bit systems and 118 KB
> -on 32-bit systems.
> +of each chunk.
>  @end deftp
>  
>  @deftp Tunable glibc.malloc.mxfast
> -One of the optimizations @code{malloc} uses is to maintain a series of ``fast
> -bins'' that hold chunks up to a specific size.  The default and
> -maximum size which may be held this way is 80 bytes on 32-bit systems
> -or 160 bytes on 64-bit systems.  Applications which value size over
> -speed may choose to reduce the size of requests which are serviced
> -from fast bins with this tunable.  Note that the value specified
> -includes @code{malloc}'s internal overhead, which is normally the size of one
> -pointer, so add 4 on 32-bit systems or 8 on 64-bit systems to the size
> -passed to @code{malloc} for the largest bin size to enable.
> +This tunable has no effect since the ``fastbins'' have been removed.
>  @end deftp
>  
>  @deftp Tunable glibc.malloc.hugetlb
>  This tunable controls the usage of Huge Pages on @code{malloc} calls.  The
> -default value is @code{0}, which disables any additional support on
> -@code{malloc}.
> +default value is @code{0} on most targets.  Using @code{0} disables support
> +that improves use of huge pages in @code{malloc}.  However huge pages may
> +still be created depending on the OS settings.
>  
>  Setting its value to @code{1} enables the use of @code{madvise} with
>  @code{MADV_HUGEPAGE} after memory allocation with @code{mmap}.  It is enabled
>  only if the system supports Transparent Huge Page (currently only on Linux).
> +This is the default used for AArch64.
>  
>  Setting its value to @code{2} enables the use of Huge Page directly with
>  @code{mmap} with the use of @code{MAP_HUGETLB} flag.  The huge page size
  

Patch

diff --git a/manual/tunables.texi b/manual/tunables.texi
index 72769428e8cac27723fdec9ad83a92dc0b27415a..5850945a59e8494a2bb315da5a3e919112c5c562 100644
--- a/manual/tunables.texi
+++ b/manual/tunables.texi
@@ -231,37 +231,29 @@  per-thread cache.  The default (and maximum) value is 1032 bytes on
 @end deftp
 
 @deftp Tunable glibc.malloc.tcache_count
-The maximum number of chunks of each size to cache. The default is 7.
+The maximum number of chunks of each size to cache. The default is 16.
 The upper limit is 65535.  If set to zero, the per-thread cache is effectively
 disabled.
 
 The approximate maximum overhead of the per-thread cache is thus equal
 to the number of bins times the chunk count in each bin times the size
-of each chunk.  With defaults, the approximate maximum overhead of the
-per-thread cache is approximately 236 KB on 64-bit systems and 118 KB
-on 32-bit systems.
+of each chunk.
 @end deftp
 
 @deftp Tunable glibc.malloc.mxfast
-One of the optimizations @code{malloc} uses is to maintain a series of ``fast
-bins'' that hold chunks up to a specific size.  The default and
-maximum size which may be held this way is 80 bytes on 32-bit systems
-or 160 bytes on 64-bit systems.  Applications which value size over
-speed may choose to reduce the size of requests which are serviced
-from fast bins with this tunable.  Note that the value specified
-includes @code{malloc}'s internal overhead, which is normally the size of one
-pointer, so add 4 on 32-bit systems or 8 on 64-bit systems to the size
-passed to @code{malloc} for the largest bin size to enable.
+This tunable has no effect since the ``fastbins'' have been removed.
 @end deftp
 
 @deftp Tunable glibc.malloc.hugetlb
 This tunable controls the usage of Huge Pages on @code{malloc} calls.  The
-default value is @code{0}, which disables any additional support on
-@code{malloc}.
+default value is @code{0} on most targets.  Using @code{0} disables support
+that improves use of huge pages in @code{malloc}.  However huge pages may
+still be created depending on the OS settings.
 
 Setting its value to @code{1} enables the use of @code{madvise} with
 @code{MADV_HUGEPAGE} after memory allocation with @code{mmap}.  It is enabled
 only if the system supports Transparent Huge Page (currently only on Linux).
+This is the default used for AArch64.
 
 Setting its value to @code{2} enables the use of Huge Page directly with
 @code{mmap} with the use of @code{MAP_HUGETLB} flag.  The huge page size