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
On 10/11/2016 02:20 AM, Michael Kerrisk wrote:
> On Mon, Oct 10, 2016 at 7:33 PM, DJ Delorie <dj@redhat.com> wrote:
>>
>> These variables all end with "_", most likely the original intention is
>> that they are not official and may be removed or changed at any time.
>>
>> By making them official, we lock in that ABI. Is that your intention?
>
> I think the notion that because one does not document something, it's
> not an official part of the ABI is at best highly dubious. Especially
> when so many "official" parts of the ABI are also not documented.
>
> The only way that documentation might be able to help in such
> situations is where pieces are clearly and loudly documented right
> from the beginning, in the official documentation, as "not supported,
> may disappear at any moment in the future, use at your own risk", but
> even then people are likely to ignore the documentation or be unaware
> of it.
>
> And in any case, these environment vars have long been documented in
> various "unofficial" places including (since 2012)
> http://man7.org/linux/man-pages/man3/mallopt.3.html
The things that DJ is worried about are the arena ones
e.g. M_ARENA_MAX, and M_ARENA_TEST and their env vars.
In 2013 I brought up the discussion about ABI implications:
https://sourceware.org/ml/libc-alpha/2013-03/msg00376.html
Only Siddhesh and I commented, and we both agreed it was a forgone
conclusion that these were stable parts of the ABI/API.
In 2015 I documented them in the linux man pages project:
https://www.sourceware.org/ml/libc-alpha/2015-08/msg00991.html
~~~
Consensus among Siddhesh and myself was that they should be public,
and in fact they were already in the public header. Therefore there
may already be applications uses these constants and expecting them
to work. At best we could limit mallopt's acceptance of the options,
but that seems like a bad solution that could lead to unexpected
behaviour for user applications. A quick google search shows that
there are packages relying on these constants to tune the glibc
malloc implementation.
~~~
They are part of the ABI and public, and should be documented
in the manual as Siddhesh's patches do.
We should however be very very circumspect about adding more
of these mallopt tunables without first seeing that such tunables
are stable and long-term useful as generic tunables (via the tunables
interface). So go review Siddhesh's patches on tunables :-)
--
Cheers,
Carlos.