This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH 1/2] Add note on MALLOC_MMAP_* environment variables
- From: Carlos O'Donell <carlos at redhat dot com>
- To: Siddhesh Poyarekar <siddhesh at sourceware dot org>, libc-alpha at sourceware dot org
- Date: Mon, 17 Oct 2016 12:13:05 -0400
- Subject: Re: [PATCH 1/2] Add note on MALLOC_MMAP_* environment variables
- Authentication-results: sourceware.org; auth=none
- References: <1476120388-26662-1-git-send-email-siddhesh@sourceware.org>
On 10/10/2016 01:26 PM, Siddhesh Poyarekar wrote:
> The mallopt parameters manual does not mention the environment
> variables that can be used to set these parameters at program startup.
> Mention those environment variables for completeness.
Please don't get upset with me :-)
I'm asking you to document the default for these env var tunables.
I think it's valid for users to want to know what value they would have
had if they _didn't_ set the environment variable.
Throwing our hands up in the air and saying "it's implementation defined"
isn't very useful IMO.
> * manual/memory.texi: Add environment variable alternatives to
> setting mallopt parameters.
> ---
> manual/memory.texi | 15 +++++++++++++++
> 1 file changed, 15 insertions(+)
>
> diff --git a/manual/memory.texi b/manual/memory.texi
> index 5383105..222f126 100644
> --- a/manual/memory.texi
> +++ b/manual/memory.texi
> @@ -1113,12 +1113,18 @@ choices for @var{param}, as defined in @file{malloc.h}, are:
> @item M_MMAP_MAX
> The maximum number of chunks to allocate with @code{mmap}. Setting this
> to zero disables all use of @code{mmap}.
> +
> +This parameter can also be set for the process at startup by setting the
> +environment variable @code{MALLOC_MMAP_MAX_} to the desired value.
What's the default?
> @item M_MMAP_THRESHOLD
> All chunks larger than this value are allocated outside the normal
> heap, using the @code{mmap} system call. This way it is guaranteed
> that the memory for these chunks can be returned to the system on
> @code{free}. Note that requests smaller than this threshold might still
> be allocated via @code{mmap}.
> +
> +This parameter can also be set for the process at startup by setting the
> +environment variable @code{MALLOC_MMAP_THRESHOLD_} to the desired value.
What's the default?
> @comment TODO: @item M_MXFAST
> @item M_PERTURB
> If non-zero, memory blocks are filled with values depending on some
> @@ -1128,16 +1134,25 @@ use of uninitialized or freed heap memory. Note that this option does not
> guarantee that the freed block will have any specific values. It only
> guarantees that the content the block had before it was freed will be
> overwritten.
> +
> +This parameter can also be set for the process at startup by setting the
> +environment variable @code{MALLOC_MMAP_PERTURB_} to the desired value.
What is the default?
> @item M_TOP_PAD
> This parameter determines the amount of extra memory to obtain from the
> system when a call to @code{sbrk} is required. It also specifies the
> number of bytes to retain when shrinking the heap by calling @code{sbrk}
> with a negative argument. This provides the necessary hysteresis in
> heap size such that excessive amounts of system calls can be avoided.
> +
> +This parameter can also be set for the process at startup by setting the
> +environment variable @code{MALLOC_TOP_PAD_} to the desired value.
What's the default?
> @item M_TRIM_THRESHOLD
> This is the minimum size (in bytes) of the top-most, releasable chunk
> that will cause @code{sbrk} to be called with a negative argument in
> order to return memory to the system.
> +
> +This parameter can also be set for the process at startup by setting the
> +environment variable @code{MALLOC_TRIM_THRESHOLD_} to the desired value.
What's the default? Note: There is a limit even with dynamic trim threshold on.
This disables the dynamic trim threshold, and that's a very important thing to
mention.
> @end table
>
> @end deftypefun
>
--
Cheers,
Carlos.