This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH 4/4] User manual documentation for tunables
On 12/30/2016 05:08 AM, Siddhesh Poyarekar wrote:
Create a new node for tunables documentation and add notes for the
malloc tunables.
* manual/tunables.texi: New chapter.
* manual/Makefile (chapters): Add it.
* manual/probes.texi (@node): Point to the Tunables chapter.
---
manual/Makefile | 3 +-
manual/probes.texi | 2 +-
manual/tunables.texi | 185 +++++++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 188 insertions(+), 2 deletions(-)
create mode 100644 manual/tunables.texi
diff --git a/manual/Makefile b/manual/Makefile
index f2f694f..ecc2bf6 100644
--- a/manual/Makefile
+++ b/manual/Makefile
@@ -38,7 +38,8 @@ chapters = $(addsuffix .texi, \
message search pattern io stdio llio filesys \
pipe socket terminal syslog math arith time \
resource setjmp signal startup process ipc job \
- nss users sysinfo conf crypt debug threads probes)
+ nss users sysinfo conf crypt debug threads \
+ probes tunables)
add-chapters = $(wildcard $(foreach d, $(add-ons), ../$d/$d.texi))
appendices = lang.texi header.texi install.texi maint.texi platform.texi \
contrib.texi
diff --git a/manual/probes.texi b/manual/probes.texi
index 237a918..eb91c62 100644
--- a/manual/probes.texi
+++ b/manual/probes.texi
@@ -1,5 +1,5 @@
@node Internal Probes
-@c @node Internal Probes, , POSIX Threads, Top
+@c @node Internal Probes, Tunables, POSIX Threads, Top
@c %MENU% Probes to monitor libc internal behavior
@chapter Internal probes
diff --git a/manual/tunables.texi b/manual/tunables.texi
new file mode 100644
index 0000000..1f1f9fc
--- /dev/null
+++ b/manual/tunables.texi
@@ -0,0 +1,185 @@
+@node Tunables
+@c @node Tunables, , Internal Probes, Top
+@c %MENU% Tunable switches to alter libc internal behavior
+@chapter Tunables
+
+Tunables is a feature in @theglibc{} that allows application authors and
“Tunables are”? Both variants are probably fine, but you already use
the plural variant below.
+distribution maintainers to alter the runtime library behaviour to match
Please use “behavior” consistently.
+their workload. These are implemented as a set of switches that may be
+modified in different ways. The current default method to do this is via
+the @env{GLIBC_TUNABLES} environment variable by setting it to a string
+of colon-separated @var{name}=@var{value} pairs. For example, the following
+environment variable export enables malloc checking and sets the malloc
+trim threshold to 128 bytes.
Please end the sentence with a colon:
+@code{export GLIBC_TUNABLES=glibc.malloc.trim_threshold=128:glibc.malloc.check=3}
This should use @example and perhaps POSIX shell syntax:
@example
GLIBC_TUNABLES=glibc.malloc.trim_threshold=128:glibc.malloc.check=3
export GLIBC_TUNABLES
@end example
amespace, tunable namespace and tunable name, separated by periods.
+
+@node Memory Allocation Tunables
+@section Memory Allocation Tunables
+
+@deftp Namespace glibc.malloc
I think this should use:
@deftp {Tunable namespace} glibc.malloc
“Namespace” is too generic.
+@deftp Tunable glibc.malloc.check
+This tunable supersedes the @code{MALLOC_CHECK_} environment variable and is
+identical in features.
+
+Setting this tunable enables a special (less efficient) memory allocator for
+the malloc family of functions that is designed to be tolerant against simple
+errors such as double calls of free with the same argument, or overruns of a
+single byte (off-by-one bugs).
I don't think this is true for the value 0. 0 uses the standard
allocator and continues execution after that malloc detected errors.
+@itemize @bullet
+@item @code{0} Disable all error reporting. The alternate allocator is
+selected and heap corruption detection is in place, but any such errors
+detected are ignored. This is currently a supported use, but is not
+recommended.
See above.
Thanks,
Florian