glibc/sysdeps/generic
Szabolcs Nagy 0c7b002fac rtld: Add rtld.nns tunable for the number of supported namespaces
TLS_STATIC_SURPLUS is 1664 bytes currently which is not enough to
support DL_NNS (== 16) number of dynamic link namespaces, if we
assume 192 bytes of TLS are reserved for libc use and 144 bytes
are reserved for other system libraries that use IE TLS.

A new tunable is introduced to control the number of supported
namespaces and to adjust the surplus static TLS size as follows:

surplus_tls = 192 * (rtld.nns-1) + 144 * rtld.nns + 512

The default is rtld.nns == 4 and then the surplus TLS size is the
same as before, so the behaviour is unchanged by default. If an
application creates more namespaces than the rtld.nns setting
allows, then it is not guaranteed to work, but the limit is not
checked. So existing usage will continue to work, but in the
future if an application creates more than 4 dynamic link
namespaces then the tunable will need to be set.

In this patch DL_NNS is a fixed value and provides a maximum to
the rtld.nns setting.

Static linking used fixed 2048 bytes surplus TLS, this is changed
so the same contract is used as for dynamic linking.  With static
linking DL_NNS == 1 so rtld.nns tunable is forced to 1, so by
default the surplus TLS is reduced to 144 + 512 = 656 bytes. This
change is not expected to cause problems.

Tested on aarch64-linux-gnu and x86_64-linux-gnu.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
2020-07-08 17:32:56 +01:00
..
net Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
netinet Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
nfs Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
sys Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
_G_config.h Post-cleanup 2: minimize _G_config.h. 2018-02-07 10:10:32 -05:00
_itoa.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
a.out.h
abort-instr.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
adaptive_spin_count.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
aio_misc.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
allocalim.h
arch-fd_to_filename.h <fd_to_filename.h>: Add type safety and port to Hurd 2020-02-18 13:42:29 +01:00
asm-syntax.h
atomic-machine.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
c++-types.data
confstr.h
crti.S Introduce <elf-initfini.h> and ELF_INITFINI for all architectures 2020-02-18 15:12:25 +01:00
crtn.S Introduce <elf-initfini.h> and ELF_INITFINI for all architectures 2020-02-18 15:12:25 +01:00
device-nrs.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
dirstream.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
dl-auxv.h powerpc: Move cache line size to rtld_global_ro 2020-01-17 09:05:03 -03:00
dl-cache.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
dl-dtprocnum.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
dl-dtv.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
dl-fcntl.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
dl-fileid.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
dl-fptr.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
dl-hash.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
dl-irel.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
dl-librecon.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
dl-lookupcfg.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
dl-machine.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
dl-mman.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
dl-osinfo.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
dl-procinfo.c
dl-procinfo.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
dl-procruntime.c ld.so: Add architecture specific fields 2017-11-13 08:02:52 -08:00
dl-prop.h rtld: Clean up PT_NOTE and add PT_GNU_PROPERTY handling 2020-07-08 14:28:53 +01:00
dl-sysdep.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
dl-tls.h
dl-unistd.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
dl-vdso-setup.c elf: Move vDSO setup to rtld (BZ#24967) 2020-01-03 11:22:07 -03:00
dl-vdso-setup.h elf: Move vDSO setup to rtld (BZ#24967) 2020-01-03 11:22:07 -03:00
dl-vdso.h elf: Move vDSO setup to rtld (BZ#24967) 2020-01-03 11:22:07 -03:00
dwarf2.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
elf_machine_sym_no_match.h elf: Introduce <elf_machine_sym_no_match.h> 2020-04-24 22:13:03 +02:00
elf-initfini.h Introduce <elf-initfini.h> and ELF_INITFINI for all architectures 2020-02-18 15:12:25 +01:00
elide.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
eloop-threshold.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
entry.h
errqueue.h
exit-thread.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
fd_to_filename.h <fd_to_filename.h>: Add type safety and port to Hurd 2020-02-18 13:42:29 +01:00
fenv_private.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
fips-private.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
fix-fp-int-compare-invalid.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
fix-fp-int-convert-overflow.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
fix-int-fp-convert-zero.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
float128-abi.h Move some float128 symbol version definitions. 2017-10-16 22:04:42 +00:00
fork.h
fpu_control.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
framestate.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
gcc-compat.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
gccframe.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
get-rounding-mode.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
gmp-mparam.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
hp-timing-common.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
hp-timing.h Update HP_TIMING_NOW for _ISOMAC in sysdeps/generic/hp-timing.h 2020-06-05 09:44:06 -07:00
ifreq.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
ifunc-init.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
ifunc-sel.h
internal-signals.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
intr-msg.h
ld.abilist
ldbl-classify-compat.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
ldconfig.h elf: Include <stddef.h> (for size_t), <sys/stat.h> in <ldconfig.h> 2020-06-25 16:51:03 +02:00
ldsodefs.h rtld: Add rtld.nns tunable for the number of supported namespaces 2020-07-08 17:32:56 +01:00
libanl.abilist
libBrokenLocale.abilist
libc-lock.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
libc-mmap.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
libc-start.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
libc-tsd.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
libc.abilist Add the __libc_single_threaded variable 2020-07-06 11:15:58 +02:00
libcrypt.abilist
libdl.abilist
libm-alias-double.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
libm-alias-float128.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
libm-alias-float.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
libm-alias-ldouble.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
libm-test-ulps Replace gen-libm-test.pl with gen-libm-test.py. 2018-08-09 15:34:12 +00:00
libm-test-ulps-name
libm.abilist
libnsl.abilist
libnss_compat.abilist
libnss_db.abilist
libnss_dns.abilist
libnss_files.abilist
libnss_hesiod.abilist
libnss_nis.abilist
libnss_nisplus.abilist
libpthread.abilist
libresolv.abilist
librt.abilist
libutil.abilist
link_map.h ld.so: Add architecture specific fields 2017-11-13 08:02:52 -08:00
linkmap.h
local-setxid.h
localplt.data ld.so: Do not export free/calloc/malloc/realloc functions [BZ #25486] 2020-02-15 11:01:23 +01:00
machine-gmon.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
machine-lock.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
machine-sp.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
Makefile string: Remove old TLS usage on strsignal 2020-07-07 14:10:58 -03:00
malloc-alignment.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
malloc-machine.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
malloc-sysdep.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
math_ldbl_opt.h Use PRINTF_LDBL_IS_DBL instead of __ldbl_is_dbl. 2018-12-05 18:15:43 -02:00
math_ldbl.h Allow direct use of math_ldbl.h in testsuite. 2017-02-25 10:40:48 -05:00
math_private_calls.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
math_private.h Enable inlining issignalingf within glibc 2019-11-21 09:39:48 -06:00
math-barriers.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
math-nan-payload-double.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
math-nan-payload-float.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
math-narrow-alias-float128.h ldbl-128ibm-compat: Provide ieee128 symbols to narrow functions 2020-02-20 17:12:14 -06:00
math-tests-arch.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
math-tests-exceptions.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
math-tests-rounding.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
math-tests-snan-cast.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
math-tests-snan-payload.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
math-tests-snan.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
math-tests-trap-force.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
math-tests-trap.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
math-tests.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
math-type-macros-double.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
math-type-macros-float128.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
math-type-macros-float.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
math-type-macros-ldouble.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
math-type-macros.h Add libm_alias_finite for _finite symbols 2020-01-03 10:02:04 -03:00
math-use-builtins-ceil.h math: Decompose math-use-builtins.h 2020-06-22 11:09:45 -03:00
math-use-builtins-copysign.h math: Decompose math-use-builtins.h 2020-06-22 11:09:45 -03:00
math-use-builtins-floor.h math: Decompose math-use-builtins.h 2020-06-22 11:09:45 -03:00
math-use-builtins-fma.h math: Decompose math-use-builtins.h 2020-06-22 11:09:45 -03:00
math-use-builtins-nearbyint.h math: Decompose math-use-builtins.h 2020-06-22 11:09:45 -03:00
math-use-builtins-rint.h math: Decompose math-use-builtins.h 2020-06-22 11:09:45 -03:00
math-use-builtins-round.h math: Decompose math-use-builtins.h 2020-06-22 11:09:45 -03:00
math-use-builtins-sqrt.h math: Decompose math-use-builtins.h 2020-06-22 11:09:45 -03:00
math-use-builtins-trunc.h math: Decompose math-use-builtins.h 2020-06-22 11:09:45 -03:00
math-use-builtins.h math: Decompose math-use-builtins.h 2020-06-22 11:09:45 -03:00
memcopy.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
memusage.h y2038: Replace __clock_gettime with __clock_gettime64 2020-05-20 16:45:16 +02:00
mmap_info.h posix: Fix large mmap64 offset for mips64n32 (BZ#24699) 2019-07-10 16:52:50 -03:00
nan-high-order-bit.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
not-cancel.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
not-errno.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
nscd-types.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
pagecopy.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
paths.h
profil-counter.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
pty-private.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
register-dump.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
rseq-internal.h Linux: Perform rseq registration at C startup and thread creation 2020-07-06 10:21:16 +02:00
rtld-lowlevel.h
safe-fatal.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
setjmpP.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
sigcontextinfo.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
siglist-compat.c signal: Move sys_siglist to a compat symbol 2020-07-07 14:10:58 -03:00
siglist-compat.h signal: Move sys_siglist to a compat symbol 2020-07-07 14:10:58 -03:00
siglist.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
sigset-cvt-mask.h Hurd: Use __sigmask in favor of deprecated sigmask 2020-05-28 11:40:13 +02:00
sigsetops.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
single-thread.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
stackguard-macros.h
stackinfo.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
stap-probe-machine.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
startup.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
stdio-lock.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
string_private.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
symbol-hacks.h Break more lines before not after operators. 2019-02-25 13:19:19 +00:00
sysdep-cancel.h nptl: Remove tst-cancel-wrappers test and related macros 2019-01-03 18:38:08 -02:00
sysdep.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
thread_state.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
time-clockid.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tininess.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tls-internal-struct.h string: Use tls-internal on strerror_l 2020-07-07 14:10:58 -03:00
tls-internal.c string: Remove old TLS usage on strsignal 2020-07-07 14:10:58 -03:00
tls-internal.h string: Use tls-internal on strerror_l 2020-07-07 14:10:58 -03:00
tls-macros.h
tls-setup.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tls.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-audit.h
tst-stack-align.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
unsecvars.h Ignore and remove LD_HWCAP_MASK for AT_SECURE programs (bug #21209) 2017-03-07 20:52:04 +05:30
unwind-arch.h mips: Fix bracktrace result for signal frames 2020-02-18 10:39:03 -03:00
unwind-dw2-fde-glibc.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
unwind-dw2-fde.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
unwind-dw2-fde.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
unwind-dw2.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
unwind-pe.c
unwind-pe.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
unwind-resume.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
unwind.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
utmp-equal.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00