1# Copyright (C) 2016-2022 Free Software Foundation, Inc.
2# This file is part of the GNU C Library.
3
4# The GNU C Library is free software; you can redistribute it and/or
5# modify it under the terms of the GNU Lesser General Public
6# License as published by the Free Software Foundation; either
7# version 2.1 of the License, or (at your option) any later version.
8
9# The GNU C Library is distributed in the hope that it will be useful,
10# but WITHOUT ANY WARRANTY; without even the implied warranty of
11# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12# Lesser General Public License for more details.
13
14# You should have received a copy of the GNU Lesser General Public
15# License along with the GNU C Library; if not, see
16# <https://www.gnu.org/licenses/>.
17
18# Allowed attributes for tunables:
19#
20# type: Defaults to STRING
21# minval: Optional minimum acceptable value
22# maxval: Optional maximum acceptable value
23# env_alias: An alias environment variable
24# security_level: Specify security level of the tunable for AT_SECURE binaries.
25# 		  Valid values are:
26#
27# 	     SXID_ERASE: (default) Do not read and do not pass on to
28# 	     child processes.
29# 	     SXID_IGNORE: Do not read, but retain for non-AT_SECURE
30# 	     subprocesses.
31# 	     NONE: Read all the time.
32
33glibc {
34  malloc {
35    check {
36      type: INT_32
37      minval: 0
38      maxval: 3
39      env_alias: MALLOC_CHECK_
40    }
41    top_pad {
42      type: SIZE_T
43      env_alias: MALLOC_TOP_PAD_
44      security_level: SXID_IGNORE
45    }
46    perturb {
47      type: INT_32
48      minval: 0
49      maxval: 0xff
50      env_alias: MALLOC_PERTURB_
51      security_level: SXID_IGNORE
52    }
53    mmap_threshold {
54      type: SIZE_T
55      env_alias: MALLOC_MMAP_THRESHOLD_
56      security_level: SXID_IGNORE
57    }
58    trim_threshold {
59      type: SIZE_T
60      env_alias: MALLOC_TRIM_THRESHOLD_
61      security_level: SXID_IGNORE
62    }
63    mmap_max {
64      type: INT_32
65      env_alias: MALLOC_MMAP_MAX_
66      security_level: SXID_IGNORE
67      minval: 0
68    }
69    arena_max {
70      type: SIZE_T
71      env_alias: MALLOC_ARENA_MAX
72      minval: 1
73      security_level: SXID_IGNORE
74    }
75    arena_test {
76      type: SIZE_T
77      env_alias: MALLOC_ARENA_TEST
78      minval: 1
79      security_level: SXID_IGNORE
80    }
81    tcache_max {
82      type: SIZE_T
83    }
84    tcache_count {
85      type: SIZE_T
86    }
87    tcache_unsorted_limit {
88      type: SIZE_T
89    }
90    mxfast {
91      type: SIZE_T
92      minval: 0
93      security_level: SXID_IGNORE
94    }
95    hugetlb {
96      type: SIZE_T
97      minval: 0
98    }
99  }
100  cpu {
101    hwcap_mask {
102      type: UINT_64
103      env_alias: LD_HWCAP_MASK
104      default: HWCAP_IMPORTANT
105    }
106  }
107
108  elision {
109    enable {
110      type: INT_32
111      minval: 0
112      maxval: 1
113    }
114    skip_lock_busy {
115      type: INT_32
116      default: 3
117      minval: 0
118    }
119    skip_lock_internal_abort {
120      type: INT_32
121      default: 3
122      minval: 0
123    }
124    skip_lock_after_retries {
125      type: INT_32
126      default: 3
127      minval: 0
128    }
129    tries {
130      type: INT_32
131      default: 3
132      minval: 0
133    }
134    skip_trylock_internal_abort {
135      type: INT_32
136      default: 3
137      minval: 0
138    }
139  }
140
141  rtld {
142    nns {
143      type: SIZE_T
144      minval: 1
145      maxval: 16
146      default: 4
147    }
148    optional_static_tls {
149      type: SIZE_T
150      minval: 0
151      default: 512
152    }
153  }
154
155  mem {
156    tagging {
157      type: INT_32
158      minval: 0
159      maxval: 255
160      security_level: SXID_IGNORE
161    }
162  }
163
164  rtld {
165    dynamic_sort {
166      type: INT_32
167      minval: 1
168      maxval: 2
169      default: 2
170    }
171  }
172}
173