Re: [PATCH v2 2/4] man/man5/tunables.conf: Document system-wide tunables config

Alejandro Colomar <[email protected]> Thu, 16 Jul 2026 14:09:34 +0200
Newsgroups org.kernel.vger.linux-man
Message-ID <aljFw_lxPpGrvtQy@devuan>
Hi DJ,

On 2026-07-14T22:58:09-0400, DJ Delorie wrote:
> ---
>  man/man5/tunables.conf.5 | 116 +++++++++++++++++++++++++++++++++++++++
>  1 file changed, 116 insertions(+)
>  create mode 100644 man/man5/tunables.conf.5
> 
> diff --git a/man/man5/tunables.conf.5 b/man/man5/tunables.conf.5
> new file mode 100644
> index 000000000..e2b31e351
> --- /dev/null
> +++ b/man/man5/tunables.conf.5
> @@ -0,0 +1,116 @@
> +.TH tunables.conf 5 (date) "Linux man-pages (unreleased)"
> +.SH NAME
> +tunables.conf \- tunables configuration file
> +.SH SYNOPSIS
> +.nf
> +.B /etc/tunables.conf
> +.fi
> +.SH DESCRIPTION
> +Each line in the file
> +.I /etc/tunables.conf
> +specifies a tunable,
> +which is a name and value separated by an equals sign.

I suspect a tunable _is_ _not_ a name=value.  That's _how_ you specify
a tunable, which is a different thing.

In fact, I think we'd have to document what a tunable actually is.
From the glibc manual, I see:

	Tunables are a feature in the GNU C Library that allows
	application authors and distribution maintainers to alter the
	runtime library behavior to match their workload.  [...]

This seems more like a description of what a tunable is.
I'd put such a short description in the first paragraph, and move the
specification of how a tunable is specified in /etc/tunables.conf to the
second paragraph.

> +.P
> +For a list of valid tunables,

Maybe s/valid/supported/?

> +please consult the glibc manual.

s/please//

Also, a link to the specific point in the glibc manual would help:

	consult the
	.UR https://sourceware.org/glibc/manual/latest/html_node/Tunables.html
	glibc manual
	.UE .

However, I see that link documents the list of supported tunables by
saying you should run `ld.so --list-tunables`, so maybe we should
document that directly?  It shouldn't take much space.

Also, I see --list-tunables is already documented in ld.so(8), so we
only need to refer to that page.

	For a list of the supported tunables,
	see
	.B \-\-list\-tunables
	in
	.BR ld.so (8).

> +.P
> +The syntax allows lines to start with the word
> +.I include
> +followed by a path wildcard,
> +and will include any files matching that wildcard.
> +The wildcard is a path specification in the
> +.BR \%glob (7)
> +format.
> +Files matching that wildcard will be processed
> +as if their contents were included in the main config file.
> +.P
> +The file is parsed by
> +.BR \%ldconfig (8)
> +and the results stored in
> +.IR /etc/ld.so.cache .
> +The resulting data is read when a new process starts.
> +.P
> +Each line may include zero or more words or symbols at the beginning,

s/words/keywords/

Also, do symbols allow/require whitespace after them?

> +which affect how each tunable affects each processes:
> +.TP
> +.B overridable
> +.TQ
> +.B +
> +Allow the tunable to be overridden by the
> +.B GLIBC_TUNABLES
> +environment variable when the process runs
> +(this is the default).
> +.TP
> +.B nonoverridable
> +.TQ
> +.B \-
> +Do not allow the tunable to be overridden by the environment variable.
> +.TP
> +.B onlysecure
> +.TQ
> +.B @
> +The tunable only applies to
> +.B AT_SECURE
> +processes,
> +such as a set-user-ID process,
> +or one with elevated capabilities.
> +.TP
> +.B nonsecure
> +.TQ
> +.B $
> +The tunable only applies to
> +.RB non- AT_SECURE
> +processes (this is the default).
> +.TP
> +.B anysecure
> +.TQ
> +.B *
> +The tunable only applies to both
> +.B AT_SECURE
> +and
> +.RB non- AT_SECURE
> +processes.
> +.P
> +The file may also contain
> +.IR filters ,
> +which limit the tunables following it,
> +up to the end of the file
> +(or end of the included file,
> +or start of a new included file)
> +or a line with only
> +.B []
> +on it.
> +The syntax is:
> +.IP
> +.in +4n
> +.EX
> +.RI [ filter : pattern ]
> +.EE
> +.in
> +.TP
> +.B proc
> +The
> +.I proc

s/I/B/

(This and many other issues were reported in the previous patch set;
 please revise that.)


Have a lovely day!
Alex

> +filter limits the following tunables to processes
> +whose name matches the pattern.
> +The pattern may be an absolute path
> +or just the base name.
> +.P
> +Example config file:
> +.IP
> +.in +4n
> +.EX
> +glibc.malloc.arenas_max=5
> +onlysecure glibc.malloc.arenas_max=1
> +\-glibc.pthread.rseq=1
> +[proc:/bin/bad.program]
> +\-glibc.pthread.rseq=0
> +[proc:some.program]
> +\-glibc.malloc.mmap_threshold=65536
> +.EE
> +.in
> +.SH FILES
> +.I /etc/ld.so.conf
> +.SH SEE ALSO
> +.BR ld.so (8),
> +.BR ldconfig (8)
> -- 
> 2.47.3
> 
> 

-- 
<https://www.alejandro-colomar.es>
signature.asc (application/pgp-signature, 833 B)
-----BEGIN PGP SIGNATURE-----

iQIzBAABCgAdFiEES7Jt9u9GbmlWADAi64mZXMKQwqkFAmpYyf4ACgkQ64mZXMKQ
wqkbbhAAspdPhlfUjlUVZATVABgzkJGm24FvK/LSJx5gvR6G7U6iPZgR07+GIEDe
75D8Lc0dYS3xxKlyKCkagYLM15GewA5lw/qvKoWJMVTdIB/KxE8NnSABb7dN/tbI
zGklzz5Kxdoe28gq8Nn2mIl4wyWOfibDFJkVG+3Tw7OPCoNbmwdLncm7FHkfe9iN
JApL0oAFgF/s0ozESBGNeci0RcO4gewVazDO5YP51mS1rSEDblDxGla3sTm9z+/N
rvze/njXuZymWCnZuAsnr6rp6dHeai9lnjsEcycOzXZvGjIh017sAUAq3o5/5Sbm
Qry9E/8i6LCZ1MkyB4FRsOd45MDWuEHOZ2Jp+5QE0aNTao4FnSACiHNvdAKTTOcW
U3lXI90/RFPeK9SFfxJmC6Agb28GPc4jzjhhpLDkGmmsFyt/JrO/OLyOBrMLcIjZ
IKL+5Y03m7hwKOBOtX8nu71p17N6GlrQBgAwGH1b9NjzjCjyEwma550WS5jGjaC6
YXMpSF5+HmVo6ilnhyz+xcYbMNIYH583a31jyY/v5rieIThZTOAxqKflTHJsdq1A
xyzO78a0kn0PfMJHkxn3Ej0IaALvr2p7G8PVN35XMzr1fw7gpJaCy3lLdN9N6zJX
8sFayXYGIiSK1AXRSfLLZemGrUgaXESnX82ZYv8lednZTUcms5Y=
=X8uQ
-----END PGP SIGNATURE-----