summary refs log tree commit diff
path: root/elf/dl-tunables.list
blob: 1f8ecb8437a0460fb5d2567b21147fc8946f4e26 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
# Copyright (C) 2016-2018 Free Software Foundation, Inc.
# This file is part of the GNU C Library.

# The GNU C Library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.

# The GNU C Library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# Lesser General Public License for more details.

# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
# <http://www.gnu.org/licenses/>.

# Allowed attributes for tunables:
#
# type: Defaults to STRING
# minval: Optional minimum acceptable value
# maxval: Optional maximum acceptable value
# env_alias: An alias environment variable
# security_level: Specify security level of the tunable.  Valid values are:
#
# 	     SXID_ERASE: (default) Don't read for AT_SECURE binaries and
# 	     		 removed so that child processes can't read it.
# 	     SXID_IGNORE: Don't read for AT_SECURE binaries, but retained for
# 	     		  non-AT_SECURE subprocesses.
# 	     NONE: Read all the time.

glibc {
  malloc {
    check {
      type: INT_32
      minval: 0
      maxval: 3
      env_alias: MALLOC_CHECK_
    }
    top_pad {
      type: SIZE_T
      env_alias: MALLOC_TOP_PAD_
      security_level: SXID_IGNORE
    }
    perturb {
      type: INT_32
      minval: 0
      maxval: 0xff
      env_alias: MALLOC_PERTURB_
      security_level: SXID_IGNORE
    }
    mmap_threshold {
      type: SIZE_T
      env_alias: MALLOC_MMAP_THRESHOLD_
      security_level: SXID_IGNORE
    }
    trim_threshold {
      type: SIZE_T
      env_alias: MALLOC_TRIM_THRESHOLD_
      security_level: SXID_IGNORE
    }
    mmap_max {
      type: INT_32
      env_alias: MALLOC_MMAP_MAX_
      security_level: SXID_IGNORE
    }
    arena_max {
      type: SIZE_T
      env_alias: MALLOC_ARENA_MAX
      minval: 1
      security_level: SXID_IGNORE
    }
    arena_test {
      type: SIZE_T
      env_alias: MALLOC_ARENA_TEST
      minval: 1
      security_level: SXID_IGNORE
    }
    tcache_max {
      type: SIZE_T
    }
    tcache_count {
      type: SIZE_T
    }
    tcache_unsorted_limit {
      type: SIZE_T
    }
  }
  tune {
    hwcap_mask {
      type: UINT_64
      env_alias: LD_HWCAP_MASK
      default: HWCAP_IMPORTANT
    }
  }

  elision {
    enable {
      type: INT_32
      minval: 0
      maxval: 1
    }
    skip_lock_busy {
      type: INT_32
      default: 3
    }
    skip_lock_internal_abort {
      type: INT_32
      default: 3
    }
    skip_lock_after_retries {
      type: INT_32
      default: 3
    }
    tries {
      type: INT_32
      default: 3
    }
    skip_trylock_internal_abort {
      type: INT_32
      default: 3
    }
  }
}