tunables.conf(5)

๐Ÿ“ฆ
version 6.20 ยท 2 versions
, in arch rolling, nixpkgs unstable

๐Ÿ’– tunables.conf โ€” the vibes manual ๐Ÿ’–

okay bestie, welcome to tunables.conf(5), straight out of the File Formats Manual section of your local man-pages situation. this is the file that tells your runtime library how to act, and honestly? it's giving quiet power. let's get into it ๐ŸŽ€

โœจ NAME โœจ

tunables.conf โ€” the tunables configuration file. that's it, that's the name, she's simple and she knows it ๐Ÿ’…

โœจ SYNOPSIS โœจ

/etc/tunables.conf

โœจ DESCRIPTION โœจ

so Tunables are a feature in the GNU C Library that lets application authors and distribution maintainers change how the runtime library behaves, so it actually matches their workload. customizable queen behavior, we love to see it ๐Ÿ’œ

this file gets parsed by ldconfig(8), and the results get stored in /etc/ld.so.cache. then, when a program starts executing, that resulting data gets read. so it's like... the file whispers, ldconfig writes it down, and every program reads the notes later. iconic pipeline honestly ๐Ÿฆ‹

every single line in /etc/tunables.conf is one of three things: a tunable, a directive, or a filter. no cap.

๐ŸŒธ Tunables ๐ŸŒธ

a tunable is written as a string shaped like name=value. that's the whole format, that's the assignment, periodt.

for the list of supported tunables? bestie, pls consult the glibc manual that matches your installed version of glibc, or just run this:

$ ld.so --list-tunables;

(yes the semicolon is in there, she's part of the command, leave her alone ๐Ÿ’€)

๐ŸŒธ Directives ๐ŸŒธ

  • include path โ€” the syntax lets a line start with the keyword include followed by a glob(7) pattern. every file matching that pattern gets processed as if its contents were included right at that point. it's copy-paste energy without the copy-paste ๐Ÿ’ซ

๐ŸŒธ Modifiers ๐ŸŒธ

each line can have zero or more keywords or symbols at the beginning, and those change how each tunable affects each process. the keywords must be separated by whitespace โ€” but the symbols do not need to be. rude little asymmetry but okay, we adapt โœจ

  • overridable, + โ€” lets the tunable be overridden by the GLIBC_TUNABLES environment variable when the process runs. this is the default, btw ๐Ÿ‘‘
  • nonoverridable, - โ€” do not let the environment variable override this one. hands off, she said what she said ๐Ÿšซ
  • onlysecure, @ โ€” the tunable applies only to AT_SECURE processes, like one started from a set-user-ID program, or one with elevated capabilities. exclusive club, velvet rope, iykyk ๐ŸŽ€
  • nonsecure, $ โ€” the tunable applies only to non-AT_SECURE processes. this is the default too ๐Ÿ’…
  • anysecure, * โ€” the tunable applies to both AT_SECURE and non-AT_SECURE processes. everybody's invited, she's inclusive ๐ŸŒˆ

๐ŸŒธ Filters ๐ŸŒธ

filters limit the tunables that come after them. and the effects of a filter get terminated by any one of these:

  • the end of the file.
  • the end of an included file.
  • an include directive.
  • a new (possibly empty) filter.

the syntax is:

[filter:pattern]
  • proc โ€” the proc filter limits the following tunables to processes whose name matches the pattern. the pattern can be an absolute path, or just the base name. either way bestie, she'll figure it out ๐Ÿงš

a filter can also be totally empty: []. such a filter has no effects. it's just standing there. existing. being decorative ๐Ÿซถ

โœจ FILES โœจ

  • /etc/tunables.conf
  • /etc/ld.so.cache โ€” cached copy of tunables.

โœจ EXAMPLES โœจ

example configuration file, and yes we're looking at it together, come closer:

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

see how the modifiers and filters are just vibing up there doing their little jobs? obsessed ๐Ÿ˜ญโœจ

โœจ SEE ALSO โœจ

ld.so(8), ldconfig(8)


and that's the whole thing, bestie ๐Ÿ’–

little sign-off moment: this page comes to you from Linux man-pages 6.20, dated 2026-08-25. slay, and remember โ€” always check the manpage for your glibc version, because the tunables list is a whole moving target ๐ŸŒธ๐Ÿ’…๐Ÿฆ‹

๐Ÿ“ฆ where this page comes from
  • arch rolling: man-pages 6.20-1 ยท BSD-2-Clause AND BSD-3-Clause AND BSD-4.3TAHOE AND BSD-4-Clause-UC AND GPL-1.0-or-later AND GPL-2.0-only AND GPL-2.0-or-later AND GPL-3.0-or-later AND LGPL-3.0-linking-exception AND LGPL-3.0-or-later AND LicenseRef-Public-Domain AND LicenseRef-UltraPermissive AND Linux-man-pages-1-para AND Linux-man-pages-copyleft AND Linux-man-pages-copyleft-2-para AND Linux-man-pages-copyleft-var AND MIT AND Spencer-94
  • nixpkgs unstable: man-pages 6.20
  • ๐Ÿ’– girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms