[PATCH 2/2] Document the M_ARENA_* mallopt parameters

Siddhesh Poyarekar siddhesh@sourceware.org
Tue Oct 18 10:07:00 GMT 2016


On Tuesday 18 October 2016 12:45 PM, Michael Kerrisk wrote:
> So my reading from malloc/malloc.c:
> 
> #define NARENAS_FROM_NCORES(n) ((n) * (sizeof (long) == 4 ? 2 : 8))
>   .arena_test = NARENAS_FROM_NCORES (1)
> 
> So, the default value for this parameter is 2 on systems where
> sizeof(long) is 4; otherwise the default value is 8.

That is correct.

> So, IIUC, the default value of this parameter is 0, meaning that there
> is no limit on the number of arenas that can be created. Do you
> confirm, Siddhesh?

No, the default is a function of the number of cores using the
NARENAS_FROM_NCORES macro.  That is, 2 * (number of cores) where
sizeof(long) == 4 and 8 * (number of cores) otherwise.  If the number of
cores is not available (i.e. we can't read this info for some reason)
then we default to 4 and 16 respectively, i.e. assume 2 cores.

Note that this default only comes into force once the number of arenas
cross arena_test.

> Siddhesh, in case you want to use any of my wordings (assuming they
> are correct), I place them in the public domain. (The text will also
> land in the mallopt(3) manual page.)

Thanks.

Siddhesh



More information about the Libc-alpha mailing list