Commit 5361471437a97cf493c2aa7d881bbedc9c248415
Committed by
Paul E. McKenney
1 parent
c34ac00cae
Exists in
smarc-imx_3.14.28_1.0.0_ga
and in
1 other branch
rcu: Select IRQ_WORK from TREE_PREEMPT_RCU
TREE_RCU and TREE_PREEMPT_RCU both cause kernel/rcutree.c to be built, but only TREE_RCU selects IRQ_WORK, which can result in an undefined reference to irq_work_queue for some (random) configs: kernel/built-in.o In function `rcu_start_gp_advanced': kernel/rcutree.c:1564: undefined reference to `irq_work_queue' Select IRQ_WORK from TREE_PREEMPT_RCU too to fix this. Signed-off-by: James Hogan <james.hogan@imgtec.com> Cc: Steven Rostedt <rostedt@goodmis.org> Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Cc: Dipankar Sarma <dipankar@in.ibm.com> Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Reviewed-by: Josh Triplett <josh@joshtriplett.org>
Showing 1 changed file with 1 additions and 0 deletions Inline Diff
init/Kconfig
1 | config ARCH | 1 | config ARCH |
2 | string | 2 | string |
3 | option env="ARCH" | 3 | option env="ARCH" |
4 | 4 | ||
5 | config KERNELVERSION | 5 | config KERNELVERSION |
6 | string | 6 | string |
7 | option env="KERNELVERSION" | 7 | option env="KERNELVERSION" |
8 | 8 | ||
9 | config DEFCONFIG_LIST | 9 | config DEFCONFIG_LIST |
10 | string | 10 | string |
11 | depends on !UML | 11 | depends on !UML |
12 | option defconfig_list | 12 | option defconfig_list |
13 | default "/lib/modules/$UNAME_RELEASE/.config" | 13 | default "/lib/modules/$UNAME_RELEASE/.config" |
14 | default "/etc/kernel-config" | 14 | default "/etc/kernel-config" |
15 | default "/boot/config-$UNAME_RELEASE" | 15 | default "/boot/config-$UNAME_RELEASE" |
16 | default "$ARCH_DEFCONFIG" | 16 | default "$ARCH_DEFCONFIG" |
17 | default "arch/$ARCH/defconfig" | 17 | default "arch/$ARCH/defconfig" |
18 | 18 | ||
19 | config CONSTRUCTORS | 19 | config CONSTRUCTORS |
20 | bool | 20 | bool |
21 | depends on !UML | 21 | depends on !UML |
22 | 22 | ||
23 | config IRQ_WORK | 23 | config IRQ_WORK |
24 | bool | 24 | bool |
25 | 25 | ||
26 | config BUILDTIME_EXTABLE_SORT | 26 | config BUILDTIME_EXTABLE_SORT |
27 | bool | 27 | bool |
28 | 28 | ||
29 | menu "General setup" | 29 | menu "General setup" |
30 | 30 | ||
31 | config BROKEN | 31 | config BROKEN |
32 | bool | 32 | bool |
33 | 33 | ||
34 | config BROKEN_ON_SMP | 34 | config BROKEN_ON_SMP |
35 | bool | 35 | bool |
36 | depends on BROKEN || !SMP | 36 | depends on BROKEN || !SMP |
37 | default y | 37 | default y |
38 | 38 | ||
39 | config INIT_ENV_ARG_LIMIT | 39 | config INIT_ENV_ARG_LIMIT |
40 | int | 40 | int |
41 | default 32 if !UML | 41 | default 32 if !UML |
42 | default 128 if UML | 42 | default 128 if UML |
43 | help | 43 | help |
44 | Maximum of each of the number of arguments and environment | 44 | Maximum of each of the number of arguments and environment |
45 | variables passed to init from the kernel command line. | 45 | variables passed to init from the kernel command line. |
46 | 46 | ||
47 | 47 | ||
48 | config CROSS_COMPILE | 48 | config CROSS_COMPILE |
49 | string "Cross-compiler tool prefix" | 49 | string "Cross-compiler tool prefix" |
50 | help | 50 | help |
51 | Same as running 'make CROSS_COMPILE=prefix-' but stored for | 51 | Same as running 'make CROSS_COMPILE=prefix-' but stored for |
52 | default make runs in this kernel build directory. You don't | 52 | default make runs in this kernel build directory. You don't |
53 | need to set this unless you want the configured kernel build | 53 | need to set this unless you want the configured kernel build |
54 | directory to select the cross-compiler automatically. | 54 | directory to select the cross-compiler automatically. |
55 | 55 | ||
56 | config COMPILE_TEST | 56 | config COMPILE_TEST |
57 | bool "Compile also drivers which will not load" | 57 | bool "Compile also drivers which will not load" |
58 | default n | 58 | default n |
59 | help | 59 | help |
60 | Some drivers can be compiled on a different platform than they are | 60 | Some drivers can be compiled on a different platform than they are |
61 | intended to be run on. Despite they cannot be loaded there (or even | 61 | intended to be run on. Despite they cannot be loaded there (or even |
62 | when they load they cannot be used due to missing HW support), | 62 | when they load they cannot be used due to missing HW support), |
63 | developers still, opposing to distributors, might want to build such | 63 | developers still, opposing to distributors, might want to build such |
64 | drivers to compile-test them. | 64 | drivers to compile-test them. |
65 | 65 | ||
66 | If you are a developer and want to build everything available, say Y | 66 | If you are a developer and want to build everything available, say Y |
67 | here. If you are a user/distributor, say N here to exclude useless | 67 | here. If you are a user/distributor, say N here to exclude useless |
68 | drivers to be distributed. | 68 | drivers to be distributed. |
69 | 69 | ||
70 | config LOCALVERSION | 70 | config LOCALVERSION |
71 | string "Local version - append to kernel release" | 71 | string "Local version - append to kernel release" |
72 | help | 72 | help |
73 | Append an extra string to the end of your kernel version. | 73 | Append an extra string to the end of your kernel version. |
74 | This will show up when you type uname, for example. | 74 | This will show up when you type uname, for example. |
75 | The string you set here will be appended after the contents of | 75 | The string you set here will be appended after the contents of |
76 | any files with a filename matching localversion* in your | 76 | any files with a filename matching localversion* in your |
77 | object and source tree, in that order. Your total string can | 77 | object and source tree, in that order. Your total string can |
78 | be a maximum of 64 characters. | 78 | be a maximum of 64 characters. |
79 | 79 | ||
80 | config LOCALVERSION_AUTO | 80 | config LOCALVERSION_AUTO |
81 | bool "Automatically append version information to the version string" | 81 | bool "Automatically append version information to the version string" |
82 | default y | 82 | default y |
83 | help | 83 | help |
84 | This will try to automatically determine if the current tree is a | 84 | This will try to automatically determine if the current tree is a |
85 | release tree by looking for git tags that belong to the current | 85 | release tree by looking for git tags that belong to the current |
86 | top of tree revision. | 86 | top of tree revision. |
87 | 87 | ||
88 | A string of the format -gxxxxxxxx will be added to the localversion | 88 | A string of the format -gxxxxxxxx will be added to the localversion |
89 | if a git-based tree is found. The string generated by this will be | 89 | if a git-based tree is found. The string generated by this will be |
90 | appended after any matching localversion* files, and after the value | 90 | appended after any matching localversion* files, and after the value |
91 | set in CONFIG_LOCALVERSION. | 91 | set in CONFIG_LOCALVERSION. |
92 | 92 | ||
93 | (The actual string used here is the first eight characters produced | 93 | (The actual string used here is the first eight characters produced |
94 | by running the command: | 94 | by running the command: |
95 | 95 | ||
96 | $ git rev-parse --verify HEAD | 96 | $ git rev-parse --verify HEAD |
97 | 97 | ||
98 | which is done within the script "scripts/setlocalversion".) | 98 | which is done within the script "scripts/setlocalversion".) |
99 | 99 | ||
100 | config HAVE_KERNEL_GZIP | 100 | config HAVE_KERNEL_GZIP |
101 | bool | 101 | bool |
102 | 102 | ||
103 | config HAVE_KERNEL_BZIP2 | 103 | config HAVE_KERNEL_BZIP2 |
104 | bool | 104 | bool |
105 | 105 | ||
106 | config HAVE_KERNEL_LZMA | 106 | config HAVE_KERNEL_LZMA |
107 | bool | 107 | bool |
108 | 108 | ||
109 | config HAVE_KERNEL_XZ | 109 | config HAVE_KERNEL_XZ |
110 | bool | 110 | bool |
111 | 111 | ||
112 | config HAVE_KERNEL_LZO | 112 | config HAVE_KERNEL_LZO |
113 | bool | 113 | bool |
114 | 114 | ||
115 | config HAVE_KERNEL_LZ4 | 115 | config HAVE_KERNEL_LZ4 |
116 | bool | 116 | bool |
117 | 117 | ||
118 | choice | 118 | choice |
119 | prompt "Kernel compression mode" | 119 | prompt "Kernel compression mode" |
120 | default KERNEL_GZIP | 120 | default KERNEL_GZIP |
121 | depends on HAVE_KERNEL_GZIP || HAVE_KERNEL_BZIP2 || HAVE_KERNEL_LZMA || HAVE_KERNEL_XZ || HAVE_KERNEL_LZO || HAVE_KERNEL_LZ4 | 121 | depends on HAVE_KERNEL_GZIP || HAVE_KERNEL_BZIP2 || HAVE_KERNEL_LZMA || HAVE_KERNEL_XZ || HAVE_KERNEL_LZO || HAVE_KERNEL_LZ4 |
122 | help | 122 | help |
123 | The linux kernel is a kind of self-extracting executable. | 123 | The linux kernel is a kind of self-extracting executable. |
124 | Several compression algorithms are available, which differ | 124 | Several compression algorithms are available, which differ |
125 | in efficiency, compression and decompression speed. | 125 | in efficiency, compression and decompression speed. |
126 | Compression speed is only relevant when building a kernel. | 126 | Compression speed is only relevant when building a kernel. |
127 | Decompression speed is relevant at each boot. | 127 | Decompression speed is relevant at each boot. |
128 | 128 | ||
129 | If you have any problems with bzip2 or lzma compressed | 129 | If you have any problems with bzip2 or lzma compressed |
130 | kernels, mail me (Alain Knaff) <alain@knaff.lu>. (An older | 130 | kernels, mail me (Alain Knaff) <alain@knaff.lu>. (An older |
131 | version of this functionality (bzip2 only), for 2.4, was | 131 | version of this functionality (bzip2 only), for 2.4, was |
132 | supplied by Christian Ludwig) | 132 | supplied by Christian Ludwig) |
133 | 133 | ||
134 | High compression options are mostly useful for users, who | 134 | High compression options are mostly useful for users, who |
135 | are low on disk space (embedded systems), but for whom ram | 135 | are low on disk space (embedded systems), but for whom ram |
136 | size matters less. | 136 | size matters less. |
137 | 137 | ||
138 | If in doubt, select 'gzip' | 138 | If in doubt, select 'gzip' |
139 | 139 | ||
140 | config KERNEL_GZIP | 140 | config KERNEL_GZIP |
141 | bool "Gzip" | 141 | bool "Gzip" |
142 | depends on HAVE_KERNEL_GZIP | 142 | depends on HAVE_KERNEL_GZIP |
143 | help | 143 | help |
144 | The old and tried gzip compression. It provides a good balance | 144 | The old and tried gzip compression. It provides a good balance |
145 | between compression ratio and decompression speed. | 145 | between compression ratio and decompression speed. |
146 | 146 | ||
147 | config KERNEL_BZIP2 | 147 | config KERNEL_BZIP2 |
148 | bool "Bzip2" | 148 | bool "Bzip2" |
149 | depends on HAVE_KERNEL_BZIP2 | 149 | depends on HAVE_KERNEL_BZIP2 |
150 | help | 150 | help |
151 | Its compression ratio and speed is intermediate. | 151 | Its compression ratio and speed is intermediate. |
152 | Decompression speed is slowest among the choices. The kernel | 152 | Decompression speed is slowest among the choices. The kernel |
153 | size is about 10% smaller with bzip2, in comparison to gzip. | 153 | size is about 10% smaller with bzip2, in comparison to gzip. |
154 | Bzip2 uses a large amount of memory. For modern kernels you | 154 | Bzip2 uses a large amount of memory. For modern kernels you |
155 | will need at least 8MB RAM or more for booting. | 155 | will need at least 8MB RAM or more for booting. |
156 | 156 | ||
157 | config KERNEL_LZMA | 157 | config KERNEL_LZMA |
158 | bool "LZMA" | 158 | bool "LZMA" |
159 | depends on HAVE_KERNEL_LZMA | 159 | depends on HAVE_KERNEL_LZMA |
160 | help | 160 | help |
161 | This compression algorithm's ratio is best. Decompression speed | 161 | This compression algorithm's ratio is best. Decompression speed |
162 | is between gzip and bzip2. Compression is slowest. | 162 | is between gzip and bzip2. Compression is slowest. |
163 | The kernel size is about 33% smaller with LZMA in comparison to gzip. | 163 | The kernel size is about 33% smaller with LZMA in comparison to gzip. |
164 | 164 | ||
165 | config KERNEL_XZ | 165 | config KERNEL_XZ |
166 | bool "XZ" | 166 | bool "XZ" |
167 | depends on HAVE_KERNEL_XZ | 167 | depends on HAVE_KERNEL_XZ |
168 | help | 168 | help |
169 | XZ uses the LZMA2 algorithm and instruction set specific | 169 | XZ uses the LZMA2 algorithm and instruction set specific |
170 | BCJ filters which can improve compression ratio of executable | 170 | BCJ filters which can improve compression ratio of executable |
171 | code. The size of the kernel is about 30% smaller with XZ in | 171 | code. The size of the kernel is about 30% smaller with XZ in |
172 | comparison to gzip. On architectures for which there is a BCJ | 172 | comparison to gzip. On architectures for which there is a BCJ |
173 | filter (i386, x86_64, ARM, IA-64, PowerPC, and SPARC), XZ | 173 | filter (i386, x86_64, ARM, IA-64, PowerPC, and SPARC), XZ |
174 | will create a few percent smaller kernel than plain LZMA. | 174 | will create a few percent smaller kernel than plain LZMA. |
175 | 175 | ||
176 | The speed is about the same as with LZMA: The decompression | 176 | The speed is about the same as with LZMA: The decompression |
177 | speed of XZ is better than that of bzip2 but worse than gzip | 177 | speed of XZ is better than that of bzip2 but worse than gzip |
178 | and LZO. Compression is slow. | 178 | and LZO. Compression is slow. |
179 | 179 | ||
180 | config KERNEL_LZO | 180 | config KERNEL_LZO |
181 | bool "LZO" | 181 | bool "LZO" |
182 | depends on HAVE_KERNEL_LZO | 182 | depends on HAVE_KERNEL_LZO |
183 | help | 183 | help |
184 | Its compression ratio is the poorest among the choices. The kernel | 184 | Its compression ratio is the poorest among the choices. The kernel |
185 | size is about 10% bigger than gzip; however its speed | 185 | size is about 10% bigger than gzip; however its speed |
186 | (both compression and decompression) is the fastest. | 186 | (both compression and decompression) is the fastest. |
187 | 187 | ||
188 | config KERNEL_LZ4 | 188 | config KERNEL_LZ4 |
189 | bool "LZ4" | 189 | bool "LZ4" |
190 | depends on HAVE_KERNEL_LZ4 | 190 | depends on HAVE_KERNEL_LZ4 |
191 | help | 191 | help |
192 | LZ4 is an LZ77-type compressor with a fixed, byte-oriented encoding. | 192 | LZ4 is an LZ77-type compressor with a fixed, byte-oriented encoding. |
193 | A preliminary version of LZ4 de/compression tool is available at | 193 | A preliminary version of LZ4 de/compression tool is available at |
194 | <https://code.google.com/p/lz4/>. | 194 | <https://code.google.com/p/lz4/>. |
195 | 195 | ||
196 | Its compression ratio is worse than LZO. The size of the kernel | 196 | Its compression ratio is worse than LZO. The size of the kernel |
197 | is about 8% bigger than LZO. But the decompression speed is | 197 | is about 8% bigger than LZO. But the decompression speed is |
198 | faster than LZO. | 198 | faster than LZO. |
199 | 199 | ||
200 | endchoice | 200 | endchoice |
201 | 201 | ||
202 | config DEFAULT_HOSTNAME | 202 | config DEFAULT_HOSTNAME |
203 | string "Default hostname" | 203 | string "Default hostname" |
204 | default "(none)" | 204 | default "(none)" |
205 | help | 205 | help |
206 | This option determines the default system hostname before userspace | 206 | This option determines the default system hostname before userspace |
207 | calls sethostname(2). The kernel traditionally uses "(none)" here, | 207 | calls sethostname(2). The kernel traditionally uses "(none)" here, |
208 | but you may wish to use a different default here to make a minimal | 208 | but you may wish to use a different default here to make a minimal |
209 | system more usable with less configuration. | 209 | system more usable with less configuration. |
210 | 210 | ||
211 | config SWAP | 211 | config SWAP |
212 | bool "Support for paging of anonymous memory (swap)" | 212 | bool "Support for paging of anonymous memory (swap)" |
213 | depends on MMU && BLOCK | 213 | depends on MMU && BLOCK |
214 | default y | 214 | default y |
215 | help | 215 | help |
216 | This option allows you to choose whether you want to have support | 216 | This option allows you to choose whether you want to have support |
217 | for so called swap devices or swap files in your kernel that are | 217 | for so called swap devices or swap files in your kernel that are |
218 | used to provide more virtual memory than the actual RAM present | 218 | used to provide more virtual memory than the actual RAM present |
219 | in your computer. If unsure say Y. | 219 | in your computer. If unsure say Y. |
220 | 220 | ||
221 | config SYSVIPC | 221 | config SYSVIPC |
222 | bool "System V IPC" | 222 | bool "System V IPC" |
223 | ---help--- | 223 | ---help--- |
224 | Inter Process Communication is a suite of library functions and | 224 | Inter Process Communication is a suite of library functions and |
225 | system calls which let processes (running programs) synchronize and | 225 | system calls which let processes (running programs) synchronize and |
226 | exchange information. It is generally considered to be a good thing, | 226 | exchange information. It is generally considered to be a good thing, |
227 | and some programs won't run unless you say Y here. In particular, if | 227 | and some programs won't run unless you say Y here. In particular, if |
228 | you want to run the DOS emulator dosemu under Linux (read the | 228 | you want to run the DOS emulator dosemu under Linux (read the |
229 | DOSEMU-HOWTO, available from <http://www.tldp.org/docs.html#howto>), | 229 | DOSEMU-HOWTO, available from <http://www.tldp.org/docs.html#howto>), |
230 | you'll need to say Y here. | 230 | you'll need to say Y here. |
231 | 231 | ||
232 | You can find documentation about IPC with "info ipc" and also in | 232 | You can find documentation about IPC with "info ipc" and also in |
233 | section 6.4 of the Linux Programmer's Guide, available from | 233 | section 6.4 of the Linux Programmer's Guide, available from |
234 | <http://www.tldp.org/guides.html>. | 234 | <http://www.tldp.org/guides.html>. |
235 | 235 | ||
236 | config SYSVIPC_SYSCTL | 236 | config SYSVIPC_SYSCTL |
237 | bool | 237 | bool |
238 | depends on SYSVIPC | 238 | depends on SYSVIPC |
239 | depends on SYSCTL | 239 | depends on SYSCTL |
240 | default y | 240 | default y |
241 | 241 | ||
242 | config POSIX_MQUEUE | 242 | config POSIX_MQUEUE |
243 | bool "POSIX Message Queues" | 243 | bool "POSIX Message Queues" |
244 | depends on NET | 244 | depends on NET |
245 | ---help--- | 245 | ---help--- |
246 | POSIX variant of message queues is a part of IPC. In POSIX message | 246 | POSIX variant of message queues is a part of IPC. In POSIX message |
247 | queues every message has a priority which decides about succession | 247 | queues every message has a priority which decides about succession |
248 | of receiving it by a process. If you want to compile and run | 248 | of receiving it by a process. If you want to compile and run |
249 | programs written e.g. for Solaris with use of its POSIX message | 249 | programs written e.g. for Solaris with use of its POSIX message |
250 | queues (functions mq_*) say Y here. | 250 | queues (functions mq_*) say Y here. |
251 | 251 | ||
252 | POSIX message queues are visible as a filesystem called 'mqueue' | 252 | POSIX message queues are visible as a filesystem called 'mqueue' |
253 | and can be mounted somewhere if you want to do filesystem | 253 | and can be mounted somewhere if you want to do filesystem |
254 | operations on message queues. | 254 | operations on message queues. |
255 | 255 | ||
256 | If unsure, say Y. | 256 | If unsure, say Y. |
257 | 257 | ||
258 | config POSIX_MQUEUE_SYSCTL | 258 | config POSIX_MQUEUE_SYSCTL |
259 | bool | 259 | bool |
260 | depends on POSIX_MQUEUE | 260 | depends on POSIX_MQUEUE |
261 | depends on SYSCTL | 261 | depends on SYSCTL |
262 | default y | 262 | default y |
263 | 263 | ||
264 | config FHANDLE | 264 | config FHANDLE |
265 | bool "open by fhandle syscalls" | 265 | bool "open by fhandle syscalls" |
266 | select EXPORTFS | 266 | select EXPORTFS |
267 | help | 267 | help |
268 | If you say Y here, a user level program will be able to map | 268 | If you say Y here, a user level program will be able to map |
269 | file names to handle and then later use the handle for | 269 | file names to handle and then later use the handle for |
270 | different file system operations. This is useful in implementing | 270 | different file system operations. This is useful in implementing |
271 | userspace file servers, which now track files using handles instead | 271 | userspace file servers, which now track files using handles instead |
272 | of names. The handle would remain the same even if file names | 272 | of names. The handle would remain the same even if file names |
273 | get renamed. Enables open_by_handle_at(2) and name_to_handle_at(2) | 273 | get renamed. Enables open_by_handle_at(2) and name_to_handle_at(2) |
274 | syscalls. | 274 | syscalls. |
275 | 275 | ||
276 | config AUDIT | 276 | config AUDIT |
277 | bool "Auditing support" | 277 | bool "Auditing support" |
278 | depends on NET | 278 | depends on NET |
279 | help | 279 | help |
280 | Enable auditing infrastructure that can be used with another | 280 | Enable auditing infrastructure that can be used with another |
281 | kernel subsystem, such as SELinux (which requires this for | 281 | kernel subsystem, such as SELinux (which requires this for |
282 | logging of avc messages output). Does not do system-call | 282 | logging of avc messages output). Does not do system-call |
283 | auditing without CONFIG_AUDITSYSCALL. | 283 | auditing without CONFIG_AUDITSYSCALL. |
284 | 284 | ||
285 | config AUDITSYSCALL | 285 | config AUDITSYSCALL |
286 | bool "Enable system-call auditing support" | 286 | bool "Enable system-call auditing support" |
287 | depends on AUDIT && (X86 || PPC || S390 || IA64 || UML || SPARC64 || SUPERH || (ARM && AEABI && !OABI_COMPAT)) | 287 | depends on AUDIT && (X86 || PPC || S390 || IA64 || UML || SPARC64 || SUPERH || (ARM && AEABI && !OABI_COMPAT)) |
288 | default y if SECURITY_SELINUX | 288 | default y if SECURITY_SELINUX |
289 | help | 289 | help |
290 | Enable low-overhead system-call auditing infrastructure that | 290 | Enable low-overhead system-call auditing infrastructure that |
291 | can be used independently or with another kernel subsystem, | 291 | can be used independently or with another kernel subsystem, |
292 | such as SELinux. | 292 | such as SELinux. |
293 | 293 | ||
294 | config AUDIT_WATCH | 294 | config AUDIT_WATCH |
295 | def_bool y | 295 | def_bool y |
296 | depends on AUDITSYSCALL | 296 | depends on AUDITSYSCALL |
297 | select FSNOTIFY | 297 | select FSNOTIFY |
298 | 298 | ||
299 | config AUDIT_TREE | 299 | config AUDIT_TREE |
300 | def_bool y | 300 | def_bool y |
301 | depends on AUDITSYSCALL | 301 | depends on AUDITSYSCALL |
302 | select FSNOTIFY | 302 | select FSNOTIFY |
303 | 303 | ||
304 | config AUDIT_LOGINUID_IMMUTABLE | 304 | config AUDIT_LOGINUID_IMMUTABLE |
305 | bool "Make audit loginuid immutable" | 305 | bool "Make audit loginuid immutable" |
306 | depends on AUDIT | 306 | depends on AUDIT |
307 | help | 307 | help |
308 | The config option toggles if a task setting its loginuid requires | 308 | The config option toggles if a task setting its loginuid requires |
309 | CAP_SYS_AUDITCONTROL or if that task should require no special permissions | 309 | CAP_SYS_AUDITCONTROL or if that task should require no special permissions |
310 | but should instead only allow setting its loginuid if it was never | 310 | but should instead only allow setting its loginuid if it was never |
311 | previously set. On systems which use systemd or a similar central | 311 | previously set. On systems which use systemd or a similar central |
312 | process to restart login services this should be set to true. On older | 312 | process to restart login services this should be set to true. On older |
313 | systems in which an admin would typically have to directly stop and | 313 | systems in which an admin would typically have to directly stop and |
314 | start processes this should be set to false. Setting this to true allows | 314 | start processes this should be set to false. Setting this to true allows |
315 | one to drop potentially dangerous capabilites from the login tasks, | 315 | one to drop potentially dangerous capabilites from the login tasks, |
316 | but may not be backwards compatible with older init systems. | 316 | but may not be backwards compatible with older init systems. |
317 | 317 | ||
318 | source "kernel/irq/Kconfig" | 318 | source "kernel/irq/Kconfig" |
319 | source "kernel/time/Kconfig" | 319 | source "kernel/time/Kconfig" |
320 | 320 | ||
321 | menu "CPU/Task time and stats accounting" | 321 | menu "CPU/Task time and stats accounting" |
322 | 322 | ||
323 | config VIRT_CPU_ACCOUNTING | 323 | config VIRT_CPU_ACCOUNTING |
324 | bool | 324 | bool |
325 | 325 | ||
326 | choice | 326 | choice |
327 | prompt "Cputime accounting" | 327 | prompt "Cputime accounting" |
328 | default TICK_CPU_ACCOUNTING if !PPC64 | 328 | default TICK_CPU_ACCOUNTING if !PPC64 |
329 | default VIRT_CPU_ACCOUNTING_NATIVE if PPC64 | 329 | default VIRT_CPU_ACCOUNTING_NATIVE if PPC64 |
330 | 330 | ||
331 | # Kind of a stub config for the pure tick based cputime accounting | 331 | # Kind of a stub config for the pure tick based cputime accounting |
332 | config TICK_CPU_ACCOUNTING | 332 | config TICK_CPU_ACCOUNTING |
333 | bool "Simple tick based cputime accounting" | 333 | bool "Simple tick based cputime accounting" |
334 | depends on !S390 && !NO_HZ_FULL | 334 | depends on !S390 && !NO_HZ_FULL |
335 | help | 335 | help |
336 | This is the basic tick based cputime accounting that maintains | 336 | This is the basic tick based cputime accounting that maintains |
337 | statistics about user, system and idle time spent on per jiffies | 337 | statistics about user, system and idle time spent on per jiffies |
338 | granularity. | 338 | granularity. |
339 | 339 | ||
340 | If unsure, say Y. | 340 | If unsure, say Y. |
341 | 341 | ||
342 | config VIRT_CPU_ACCOUNTING_NATIVE | 342 | config VIRT_CPU_ACCOUNTING_NATIVE |
343 | bool "Deterministic task and CPU time accounting" | 343 | bool "Deterministic task and CPU time accounting" |
344 | depends on HAVE_VIRT_CPU_ACCOUNTING && !NO_HZ_FULL | 344 | depends on HAVE_VIRT_CPU_ACCOUNTING && !NO_HZ_FULL |
345 | select VIRT_CPU_ACCOUNTING | 345 | select VIRT_CPU_ACCOUNTING |
346 | help | 346 | help |
347 | Select this option to enable more accurate task and CPU time | 347 | Select this option to enable more accurate task and CPU time |
348 | accounting. This is done by reading a CPU counter on each | 348 | accounting. This is done by reading a CPU counter on each |
349 | kernel entry and exit and on transitions within the kernel | 349 | kernel entry and exit and on transitions within the kernel |
350 | between system, softirq and hardirq state, so there is a | 350 | between system, softirq and hardirq state, so there is a |
351 | small performance impact. In the case of s390 or IBM POWER > 5, | 351 | small performance impact. In the case of s390 or IBM POWER > 5, |
352 | this also enables accounting of stolen time on logically-partitioned | 352 | this also enables accounting of stolen time on logically-partitioned |
353 | systems. | 353 | systems. |
354 | 354 | ||
355 | config VIRT_CPU_ACCOUNTING_GEN | 355 | config VIRT_CPU_ACCOUNTING_GEN |
356 | bool "Full dynticks CPU time accounting" | 356 | bool "Full dynticks CPU time accounting" |
357 | depends on HAVE_CONTEXT_TRACKING && 64BIT | 357 | depends on HAVE_CONTEXT_TRACKING && 64BIT |
358 | select VIRT_CPU_ACCOUNTING | 358 | select VIRT_CPU_ACCOUNTING |
359 | select CONTEXT_TRACKING | 359 | select CONTEXT_TRACKING |
360 | help | 360 | help |
361 | Select this option to enable task and CPU time accounting on full | 361 | Select this option to enable task and CPU time accounting on full |
362 | dynticks systems. This accounting is implemented by watching every | 362 | dynticks systems. This accounting is implemented by watching every |
363 | kernel-user boundaries using the context tracking subsystem. | 363 | kernel-user boundaries using the context tracking subsystem. |
364 | The accounting is thus performed at the expense of some significant | 364 | The accounting is thus performed at the expense of some significant |
365 | overhead. | 365 | overhead. |
366 | 366 | ||
367 | For now this is only useful if you are working on the full | 367 | For now this is only useful if you are working on the full |
368 | dynticks subsystem development. | 368 | dynticks subsystem development. |
369 | 369 | ||
370 | If unsure, say N. | 370 | If unsure, say N. |
371 | 371 | ||
372 | config IRQ_TIME_ACCOUNTING | 372 | config IRQ_TIME_ACCOUNTING |
373 | bool "Fine granularity task level IRQ time accounting" | 373 | bool "Fine granularity task level IRQ time accounting" |
374 | depends on HAVE_IRQ_TIME_ACCOUNTING && !NO_HZ_FULL | 374 | depends on HAVE_IRQ_TIME_ACCOUNTING && !NO_HZ_FULL |
375 | help | 375 | help |
376 | Select this option to enable fine granularity task irq time | 376 | Select this option to enable fine granularity task irq time |
377 | accounting. This is done by reading a timestamp on each | 377 | accounting. This is done by reading a timestamp on each |
378 | transitions between softirq and hardirq state, so there can be a | 378 | transitions between softirq and hardirq state, so there can be a |
379 | small performance impact. | 379 | small performance impact. |
380 | 380 | ||
381 | If in doubt, say N here. | 381 | If in doubt, say N here. |
382 | 382 | ||
383 | endchoice | 383 | endchoice |
384 | 384 | ||
385 | config BSD_PROCESS_ACCT | 385 | config BSD_PROCESS_ACCT |
386 | bool "BSD Process Accounting" | 386 | bool "BSD Process Accounting" |
387 | help | 387 | help |
388 | If you say Y here, a user level program will be able to instruct the | 388 | If you say Y here, a user level program will be able to instruct the |
389 | kernel (via a special system call) to write process accounting | 389 | kernel (via a special system call) to write process accounting |
390 | information to a file: whenever a process exits, information about | 390 | information to a file: whenever a process exits, information about |
391 | that process will be appended to the file by the kernel. The | 391 | that process will be appended to the file by the kernel. The |
392 | information includes things such as creation time, owning user, | 392 | information includes things such as creation time, owning user, |
393 | command name, memory usage, controlling terminal etc. (the complete | 393 | command name, memory usage, controlling terminal etc. (the complete |
394 | list is in the struct acct in <file:include/linux/acct.h>). It is | 394 | list is in the struct acct in <file:include/linux/acct.h>). It is |
395 | up to the user level program to do useful things with this | 395 | up to the user level program to do useful things with this |
396 | information. This is generally a good idea, so say Y. | 396 | information. This is generally a good idea, so say Y. |
397 | 397 | ||
398 | config BSD_PROCESS_ACCT_V3 | 398 | config BSD_PROCESS_ACCT_V3 |
399 | bool "BSD Process Accounting version 3 file format" | 399 | bool "BSD Process Accounting version 3 file format" |
400 | depends on BSD_PROCESS_ACCT | 400 | depends on BSD_PROCESS_ACCT |
401 | default n | 401 | default n |
402 | help | 402 | help |
403 | If you say Y here, the process accounting information is written | 403 | If you say Y here, the process accounting information is written |
404 | in a new file format that also logs the process IDs of each | 404 | in a new file format that also logs the process IDs of each |
405 | process and it's parent. Note that this file format is incompatible | 405 | process and it's parent. Note that this file format is incompatible |
406 | with previous v0/v1/v2 file formats, so you will need updated tools | 406 | with previous v0/v1/v2 file formats, so you will need updated tools |
407 | for processing it. A preliminary version of these tools is available | 407 | for processing it. A preliminary version of these tools is available |
408 | at <http://www.gnu.org/software/acct/>. | 408 | at <http://www.gnu.org/software/acct/>. |
409 | 409 | ||
410 | config TASKSTATS | 410 | config TASKSTATS |
411 | bool "Export task/process statistics through netlink" | 411 | bool "Export task/process statistics through netlink" |
412 | depends on NET | 412 | depends on NET |
413 | default n | 413 | default n |
414 | help | 414 | help |
415 | Export selected statistics for tasks/processes through the | 415 | Export selected statistics for tasks/processes through the |
416 | generic netlink interface. Unlike BSD process accounting, the | 416 | generic netlink interface. Unlike BSD process accounting, the |
417 | statistics are available during the lifetime of tasks/processes as | 417 | statistics are available during the lifetime of tasks/processes as |
418 | responses to commands. Like BSD accounting, they are sent to user | 418 | responses to commands. Like BSD accounting, they are sent to user |
419 | space on task exit. | 419 | space on task exit. |
420 | 420 | ||
421 | Say N if unsure. | 421 | Say N if unsure. |
422 | 422 | ||
423 | config TASK_DELAY_ACCT | 423 | config TASK_DELAY_ACCT |
424 | bool "Enable per-task delay accounting" | 424 | bool "Enable per-task delay accounting" |
425 | depends on TASKSTATS | 425 | depends on TASKSTATS |
426 | help | 426 | help |
427 | Collect information on time spent by a task waiting for system | 427 | Collect information on time spent by a task waiting for system |
428 | resources like cpu, synchronous block I/O completion and swapping | 428 | resources like cpu, synchronous block I/O completion and swapping |
429 | in pages. Such statistics can help in setting a task's priorities | 429 | in pages. Such statistics can help in setting a task's priorities |
430 | relative to other tasks for cpu, io, rss limits etc. | 430 | relative to other tasks for cpu, io, rss limits etc. |
431 | 431 | ||
432 | Say N if unsure. | 432 | Say N if unsure. |
433 | 433 | ||
434 | config TASK_XACCT | 434 | config TASK_XACCT |
435 | bool "Enable extended accounting over taskstats" | 435 | bool "Enable extended accounting over taskstats" |
436 | depends on TASKSTATS | 436 | depends on TASKSTATS |
437 | help | 437 | help |
438 | Collect extended task accounting data and send the data | 438 | Collect extended task accounting data and send the data |
439 | to userland for processing over the taskstats interface. | 439 | to userland for processing over the taskstats interface. |
440 | 440 | ||
441 | Say N if unsure. | 441 | Say N if unsure. |
442 | 442 | ||
443 | config TASK_IO_ACCOUNTING | 443 | config TASK_IO_ACCOUNTING |
444 | bool "Enable per-task storage I/O accounting" | 444 | bool "Enable per-task storage I/O accounting" |
445 | depends on TASK_XACCT | 445 | depends on TASK_XACCT |
446 | help | 446 | help |
447 | Collect information on the number of bytes of storage I/O which this | 447 | Collect information on the number of bytes of storage I/O which this |
448 | task has caused. | 448 | task has caused. |
449 | 449 | ||
450 | Say N if unsure. | 450 | Say N if unsure. |
451 | 451 | ||
452 | endmenu # "CPU/Task time and stats accounting" | 452 | endmenu # "CPU/Task time and stats accounting" |
453 | 453 | ||
454 | menu "RCU Subsystem" | 454 | menu "RCU Subsystem" |
455 | 455 | ||
456 | choice | 456 | choice |
457 | prompt "RCU Implementation" | 457 | prompt "RCU Implementation" |
458 | default TREE_RCU | 458 | default TREE_RCU |
459 | 459 | ||
460 | config TREE_RCU | 460 | config TREE_RCU |
461 | bool "Tree-based hierarchical RCU" | 461 | bool "Tree-based hierarchical RCU" |
462 | depends on !PREEMPT && SMP | 462 | depends on !PREEMPT && SMP |
463 | select IRQ_WORK | 463 | select IRQ_WORK |
464 | help | 464 | help |
465 | This option selects the RCU implementation that is | 465 | This option selects the RCU implementation that is |
466 | designed for very large SMP system with hundreds or | 466 | designed for very large SMP system with hundreds or |
467 | thousands of CPUs. It also scales down nicely to | 467 | thousands of CPUs. It also scales down nicely to |
468 | smaller systems. | 468 | smaller systems. |
469 | 469 | ||
470 | config TREE_PREEMPT_RCU | 470 | config TREE_PREEMPT_RCU |
471 | bool "Preemptible tree-based hierarchical RCU" | 471 | bool "Preemptible tree-based hierarchical RCU" |
472 | depends on PREEMPT | 472 | depends on PREEMPT |
473 | select IRQ_WORK | ||
473 | help | 474 | help |
474 | This option selects the RCU implementation that is | 475 | This option selects the RCU implementation that is |
475 | designed for very large SMP systems with hundreds or | 476 | designed for very large SMP systems with hundreds or |
476 | thousands of CPUs, but for which real-time response | 477 | thousands of CPUs, but for which real-time response |
477 | is also required. It also scales down nicely to | 478 | is also required. It also scales down nicely to |
478 | smaller systems. | 479 | smaller systems. |
479 | 480 | ||
480 | Select this option if you are unsure. | 481 | Select this option if you are unsure. |
481 | 482 | ||
482 | config TINY_RCU | 483 | config TINY_RCU |
483 | bool "UP-only small-memory-footprint RCU" | 484 | bool "UP-only small-memory-footprint RCU" |
484 | depends on !PREEMPT && !SMP | 485 | depends on !PREEMPT && !SMP |
485 | help | 486 | help |
486 | This option selects the RCU implementation that is | 487 | This option selects the RCU implementation that is |
487 | designed for UP systems from which real-time response | 488 | designed for UP systems from which real-time response |
488 | is not required. This option greatly reduces the | 489 | is not required. This option greatly reduces the |
489 | memory footprint of RCU. | 490 | memory footprint of RCU. |
490 | 491 | ||
491 | endchoice | 492 | endchoice |
492 | 493 | ||
493 | config PREEMPT_RCU | 494 | config PREEMPT_RCU |
494 | def_bool TREE_PREEMPT_RCU | 495 | def_bool TREE_PREEMPT_RCU |
495 | help | 496 | help |
496 | This option enables preemptible-RCU code that is common between | 497 | This option enables preemptible-RCU code that is common between |
497 | the TREE_PREEMPT_RCU and TINY_PREEMPT_RCU implementations. | 498 | the TREE_PREEMPT_RCU and TINY_PREEMPT_RCU implementations. |
498 | 499 | ||
499 | config RCU_STALL_COMMON | 500 | config RCU_STALL_COMMON |
500 | def_bool ( TREE_RCU || TREE_PREEMPT_RCU || RCU_TRACE ) | 501 | def_bool ( TREE_RCU || TREE_PREEMPT_RCU || RCU_TRACE ) |
501 | help | 502 | help |
502 | This option enables RCU CPU stall code that is common between | 503 | This option enables RCU CPU stall code that is common between |
503 | the TINY and TREE variants of RCU. The purpose is to allow | 504 | the TINY and TREE variants of RCU. The purpose is to allow |
504 | the tiny variants to disable RCU CPU stall warnings, while | 505 | the tiny variants to disable RCU CPU stall warnings, while |
505 | making these warnings mandatory for the tree variants. | 506 | making these warnings mandatory for the tree variants. |
506 | 507 | ||
507 | config CONTEXT_TRACKING | 508 | config CONTEXT_TRACKING |
508 | bool | 509 | bool |
509 | 510 | ||
510 | config RCU_USER_QS | 511 | config RCU_USER_QS |
511 | bool "Consider userspace as in RCU extended quiescent state" | 512 | bool "Consider userspace as in RCU extended quiescent state" |
512 | depends on HAVE_CONTEXT_TRACKING && SMP | 513 | depends on HAVE_CONTEXT_TRACKING && SMP |
513 | select CONTEXT_TRACKING | 514 | select CONTEXT_TRACKING |
514 | help | 515 | help |
515 | This option sets hooks on kernel / userspace boundaries and | 516 | This option sets hooks on kernel / userspace boundaries and |
516 | puts RCU in extended quiescent state when the CPU runs in | 517 | puts RCU in extended quiescent state when the CPU runs in |
517 | userspace. It means that when a CPU runs in userspace, it is | 518 | userspace. It means that when a CPU runs in userspace, it is |
518 | excluded from the global RCU state machine and thus doesn't | 519 | excluded from the global RCU state machine and thus doesn't |
519 | try to keep the timer tick on for RCU. | 520 | try to keep the timer tick on for RCU. |
520 | 521 | ||
521 | Unless you want to hack and help the development of the full | 522 | Unless you want to hack and help the development of the full |
522 | dynticks mode, you shouldn't enable this option. It also | 523 | dynticks mode, you shouldn't enable this option. It also |
523 | adds unnecessary overhead. | 524 | adds unnecessary overhead. |
524 | 525 | ||
525 | If unsure say N | 526 | If unsure say N |
526 | 527 | ||
527 | config CONTEXT_TRACKING_FORCE | 528 | config CONTEXT_TRACKING_FORCE |
528 | bool "Force context tracking" | 529 | bool "Force context tracking" |
529 | depends on CONTEXT_TRACKING | 530 | depends on CONTEXT_TRACKING |
530 | default CONTEXT_TRACKING | 531 | default CONTEXT_TRACKING |
531 | help | 532 | help |
532 | Probe on user/kernel boundaries by default in order to | 533 | Probe on user/kernel boundaries by default in order to |
533 | test the features that rely on it such as userspace RCU extended | 534 | test the features that rely on it such as userspace RCU extended |
534 | quiescent states. | 535 | quiescent states. |
535 | This test is there for debugging until we have a real user like the | 536 | This test is there for debugging until we have a real user like the |
536 | full dynticks mode. | 537 | full dynticks mode. |
537 | 538 | ||
538 | config RCU_FANOUT | 539 | config RCU_FANOUT |
539 | int "Tree-based hierarchical RCU fanout value" | 540 | int "Tree-based hierarchical RCU fanout value" |
540 | range 2 64 if 64BIT | 541 | range 2 64 if 64BIT |
541 | range 2 32 if !64BIT | 542 | range 2 32 if !64BIT |
542 | depends on TREE_RCU || TREE_PREEMPT_RCU | 543 | depends on TREE_RCU || TREE_PREEMPT_RCU |
543 | default 64 if 64BIT | 544 | default 64 if 64BIT |
544 | default 32 if !64BIT | 545 | default 32 if !64BIT |
545 | help | 546 | help |
546 | This option controls the fanout of hierarchical implementations | 547 | This option controls the fanout of hierarchical implementations |
547 | of RCU, allowing RCU to work efficiently on machines with | 548 | of RCU, allowing RCU to work efficiently on machines with |
548 | large numbers of CPUs. This value must be at least the fourth | 549 | large numbers of CPUs. This value must be at least the fourth |
549 | root of NR_CPUS, which allows NR_CPUS to be insanely large. | 550 | root of NR_CPUS, which allows NR_CPUS to be insanely large. |
550 | The default value of RCU_FANOUT should be used for production | 551 | The default value of RCU_FANOUT should be used for production |
551 | systems, but if you are stress-testing the RCU implementation | 552 | systems, but if you are stress-testing the RCU implementation |
552 | itself, small RCU_FANOUT values allow you to test large-system | 553 | itself, small RCU_FANOUT values allow you to test large-system |
553 | code paths on small(er) systems. | 554 | code paths on small(er) systems. |
554 | 555 | ||
555 | Select a specific number if testing RCU itself. | 556 | Select a specific number if testing RCU itself. |
556 | Take the default if unsure. | 557 | Take the default if unsure. |
557 | 558 | ||
558 | config RCU_FANOUT_LEAF | 559 | config RCU_FANOUT_LEAF |
559 | int "Tree-based hierarchical RCU leaf-level fanout value" | 560 | int "Tree-based hierarchical RCU leaf-level fanout value" |
560 | range 2 RCU_FANOUT if 64BIT | 561 | range 2 RCU_FANOUT if 64BIT |
561 | range 2 RCU_FANOUT if !64BIT | 562 | range 2 RCU_FANOUT if !64BIT |
562 | depends on TREE_RCU || TREE_PREEMPT_RCU | 563 | depends on TREE_RCU || TREE_PREEMPT_RCU |
563 | default 16 | 564 | default 16 |
564 | help | 565 | help |
565 | This option controls the leaf-level fanout of hierarchical | 566 | This option controls the leaf-level fanout of hierarchical |
566 | implementations of RCU, and allows trading off cache misses | 567 | implementations of RCU, and allows trading off cache misses |
567 | against lock contention. Systems that synchronize their | 568 | against lock contention. Systems that synchronize their |
568 | scheduling-clock interrupts for energy-efficiency reasons will | 569 | scheduling-clock interrupts for energy-efficiency reasons will |
569 | want the default because the smaller leaf-level fanout keeps | 570 | want the default because the smaller leaf-level fanout keeps |
570 | lock contention levels acceptably low. Very large systems | 571 | lock contention levels acceptably low. Very large systems |
571 | (hundreds or thousands of CPUs) will instead want to set this | 572 | (hundreds or thousands of CPUs) will instead want to set this |
572 | value to the maximum value possible in order to reduce the | 573 | value to the maximum value possible in order to reduce the |
573 | number of cache misses incurred during RCU's grace-period | 574 | number of cache misses incurred during RCU's grace-period |
574 | initialization. These systems tend to run CPU-bound, and thus | 575 | initialization. These systems tend to run CPU-bound, and thus |
575 | are not helped by synchronized interrupts, and thus tend to | 576 | are not helped by synchronized interrupts, and thus tend to |
576 | skew them, which reduces lock contention enough that large | 577 | skew them, which reduces lock contention enough that large |
577 | leaf-level fanouts work well. | 578 | leaf-level fanouts work well. |
578 | 579 | ||
579 | Select a specific number if testing RCU itself. | 580 | Select a specific number if testing RCU itself. |
580 | 581 | ||
581 | Select the maximum permissible value for large systems. | 582 | Select the maximum permissible value for large systems. |
582 | 583 | ||
583 | Take the default if unsure. | 584 | Take the default if unsure. |
584 | 585 | ||
585 | config RCU_FANOUT_EXACT | 586 | config RCU_FANOUT_EXACT |
586 | bool "Disable tree-based hierarchical RCU auto-balancing" | 587 | bool "Disable tree-based hierarchical RCU auto-balancing" |
587 | depends on TREE_RCU || TREE_PREEMPT_RCU | 588 | depends on TREE_RCU || TREE_PREEMPT_RCU |
588 | default n | 589 | default n |
589 | help | 590 | help |
590 | This option forces use of the exact RCU_FANOUT value specified, | 591 | This option forces use of the exact RCU_FANOUT value specified, |
591 | regardless of imbalances in the hierarchy. This is useful for | 592 | regardless of imbalances in the hierarchy. This is useful for |
592 | testing RCU itself, and might one day be useful on systems with | 593 | testing RCU itself, and might one day be useful on systems with |
593 | strong NUMA behavior. | 594 | strong NUMA behavior. |
594 | 595 | ||
595 | Without RCU_FANOUT_EXACT, the code will balance the hierarchy. | 596 | Without RCU_FANOUT_EXACT, the code will balance the hierarchy. |
596 | 597 | ||
597 | Say N if unsure. | 598 | Say N if unsure. |
598 | 599 | ||
599 | config RCU_FAST_NO_HZ | 600 | config RCU_FAST_NO_HZ |
600 | bool "Accelerate last non-dyntick-idle CPU's grace periods" | 601 | bool "Accelerate last non-dyntick-idle CPU's grace periods" |
601 | depends on NO_HZ_COMMON && SMP | 602 | depends on NO_HZ_COMMON && SMP |
602 | default n | 603 | default n |
603 | help | 604 | help |
604 | This option permits CPUs to enter dynticks-idle state even if | 605 | This option permits CPUs to enter dynticks-idle state even if |
605 | they have RCU callbacks queued, and prevents RCU from waking | 606 | they have RCU callbacks queued, and prevents RCU from waking |
606 | these CPUs up more than roughly once every four jiffies (by | 607 | these CPUs up more than roughly once every four jiffies (by |
607 | default, you can adjust this using the rcutree.rcu_idle_gp_delay | 608 | default, you can adjust this using the rcutree.rcu_idle_gp_delay |
608 | parameter), thus improving energy efficiency. On the other | 609 | parameter), thus improving energy efficiency. On the other |
609 | hand, this option increases the duration of RCU grace periods, | 610 | hand, this option increases the duration of RCU grace periods, |
610 | for example, slowing down synchronize_rcu(). | 611 | for example, slowing down synchronize_rcu(). |
611 | 612 | ||
612 | Say Y if energy efficiency is critically important, and you | 613 | Say Y if energy efficiency is critically important, and you |
613 | don't care about increased grace-period durations. | 614 | don't care about increased grace-period durations. |
614 | 615 | ||
615 | Say N if you are unsure. | 616 | Say N if you are unsure. |
616 | 617 | ||
617 | config TREE_RCU_TRACE | 618 | config TREE_RCU_TRACE |
618 | def_bool RCU_TRACE && ( TREE_RCU || TREE_PREEMPT_RCU ) | 619 | def_bool RCU_TRACE && ( TREE_RCU || TREE_PREEMPT_RCU ) |
619 | select DEBUG_FS | 620 | select DEBUG_FS |
620 | help | 621 | help |
621 | This option provides tracing for the TREE_RCU and | 622 | This option provides tracing for the TREE_RCU and |
622 | TREE_PREEMPT_RCU implementations, permitting Makefile to | 623 | TREE_PREEMPT_RCU implementations, permitting Makefile to |
623 | trivially select kernel/rcutree_trace.c. | 624 | trivially select kernel/rcutree_trace.c. |
624 | 625 | ||
625 | config RCU_BOOST | 626 | config RCU_BOOST |
626 | bool "Enable RCU priority boosting" | 627 | bool "Enable RCU priority boosting" |
627 | depends on RT_MUTEXES && PREEMPT_RCU | 628 | depends on RT_MUTEXES && PREEMPT_RCU |
628 | default n | 629 | default n |
629 | help | 630 | help |
630 | This option boosts the priority of preempted RCU readers that | 631 | This option boosts the priority of preempted RCU readers that |
631 | block the current preemptible RCU grace period for too long. | 632 | block the current preemptible RCU grace period for too long. |
632 | This option also prevents heavy loads from blocking RCU | 633 | This option also prevents heavy loads from blocking RCU |
633 | callback invocation for all flavors of RCU. | 634 | callback invocation for all flavors of RCU. |
634 | 635 | ||
635 | Say Y here if you are working with real-time apps or heavy loads | 636 | Say Y here if you are working with real-time apps or heavy loads |
636 | Say N here if you are unsure. | 637 | Say N here if you are unsure. |
637 | 638 | ||
638 | config RCU_BOOST_PRIO | 639 | config RCU_BOOST_PRIO |
639 | int "Real-time priority to boost RCU readers to" | 640 | int "Real-time priority to boost RCU readers to" |
640 | range 1 99 | 641 | range 1 99 |
641 | depends on RCU_BOOST | 642 | depends on RCU_BOOST |
642 | default 1 | 643 | default 1 |
643 | help | 644 | help |
644 | This option specifies the real-time priority to which long-term | 645 | This option specifies the real-time priority to which long-term |
645 | preempted RCU readers are to be boosted. If you are working | 646 | preempted RCU readers are to be boosted. If you are working |
646 | with a real-time application that has one or more CPU-bound | 647 | with a real-time application that has one or more CPU-bound |
647 | threads running at a real-time priority level, you should set | 648 | threads running at a real-time priority level, you should set |
648 | RCU_BOOST_PRIO to a priority higher then the highest-priority | 649 | RCU_BOOST_PRIO to a priority higher then the highest-priority |
649 | real-time CPU-bound thread. The default RCU_BOOST_PRIO value | 650 | real-time CPU-bound thread. The default RCU_BOOST_PRIO value |
650 | of 1 is appropriate in the common case, which is real-time | 651 | of 1 is appropriate in the common case, which is real-time |
651 | applications that do not have any CPU-bound threads. | 652 | applications that do not have any CPU-bound threads. |
652 | 653 | ||
653 | Some real-time applications might not have a single real-time | 654 | Some real-time applications might not have a single real-time |
654 | thread that saturates a given CPU, but instead might have | 655 | thread that saturates a given CPU, but instead might have |
655 | multiple real-time threads that, taken together, fully utilize | 656 | multiple real-time threads that, taken together, fully utilize |
656 | that CPU. In this case, you should set RCU_BOOST_PRIO to | 657 | that CPU. In this case, you should set RCU_BOOST_PRIO to |
657 | a priority higher than the lowest-priority thread that is | 658 | a priority higher than the lowest-priority thread that is |
658 | conspiring to prevent the CPU from running any non-real-time | 659 | conspiring to prevent the CPU from running any non-real-time |
659 | tasks. For example, if one thread at priority 10 and another | 660 | tasks. For example, if one thread at priority 10 and another |
660 | thread at priority 5 are between themselves fully consuming | 661 | thread at priority 5 are between themselves fully consuming |
661 | the CPU time on a given CPU, then RCU_BOOST_PRIO should be | 662 | the CPU time on a given CPU, then RCU_BOOST_PRIO should be |
662 | set to priority 6 or higher. | 663 | set to priority 6 or higher. |
663 | 664 | ||
664 | Specify the real-time priority, or take the default if unsure. | 665 | Specify the real-time priority, or take the default if unsure. |
665 | 666 | ||
666 | config RCU_BOOST_DELAY | 667 | config RCU_BOOST_DELAY |
667 | int "Milliseconds to delay boosting after RCU grace-period start" | 668 | int "Milliseconds to delay boosting after RCU grace-period start" |
668 | range 0 3000 | 669 | range 0 3000 |
669 | depends on RCU_BOOST | 670 | depends on RCU_BOOST |
670 | default 500 | 671 | default 500 |
671 | help | 672 | help |
672 | This option specifies the time to wait after the beginning of | 673 | This option specifies the time to wait after the beginning of |
673 | a given grace period before priority-boosting preempted RCU | 674 | a given grace period before priority-boosting preempted RCU |
674 | readers blocking that grace period. Note that any RCU reader | 675 | readers blocking that grace period. Note that any RCU reader |
675 | blocking an expedited RCU grace period is boosted immediately. | 676 | blocking an expedited RCU grace period is boosted immediately. |
676 | 677 | ||
677 | Accept the default if unsure. | 678 | Accept the default if unsure. |
678 | 679 | ||
679 | config RCU_NOCB_CPU | 680 | config RCU_NOCB_CPU |
680 | bool "Offload RCU callback processing from boot-selected CPUs" | 681 | bool "Offload RCU callback processing from boot-selected CPUs" |
681 | depends on TREE_RCU || TREE_PREEMPT_RCU | 682 | depends on TREE_RCU || TREE_PREEMPT_RCU |
682 | default n | 683 | default n |
683 | help | 684 | help |
684 | Use this option to reduce OS jitter for aggressive HPC or | 685 | Use this option to reduce OS jitter for aggressive HPC or |
685 | real-time workloads. It can also be used to offload RCU | 686 | real-time workloads. It can also be used to offload RCU |
686 | callback invocation to energy-efficient CPUs in battery-powered | 687 | callback invocation to energy-efficient CPUs in battery-powered |
687 | asymmetric multiprocessors. | 688 | asymmetric multiprocessors. |
688 | 689 | ||
689 | This option offloads callback invocation from the set of | 690 | This option offloads callback invocation from the set of |
690 | CPUs specified at boot time by the rcu_nocbs parameter. | 691 | CPUs specified at boot time by the rcu_nocbs parameter. |
691 | For each such CPU, a kthread ("rcuox/N") will be created to | 692 | For each such CPU, a kthread ("rcuox/N") will be created to |
692 | invoke callbacks, where the "N" is the CPU being offloaded, | 693 | invoke callbacks, where the "N" is the CPU being offloaded, |
693 | and where the "x" is "b" for RCU-bh, "p" for RCU-preempt, and | 694 | and where the "x" is "b" for RCU-bh, "p" for RCU-preempt, and |
694 | "s" for RCU-sched. Nothing prevents this kthread from running | 695 | "s" for RCU-sched. Nothing prevents this kthread from running |
695 | on the specified CPUs, but (1) the kthreads may be preempted | 696 | on the specified CPUs, but (1) the kthreads may be preempted |
696 | between each callback, and (2) affinity or cgroups can be used | 697 | between each callback, and (2) affinity or cgroups can be used |
697 | to force the kthreads to run on whatever set of CPUs is desired. | 698 | to force the kthreads to run on whatever set of CPUs is desired. |
698 | 699 | ||
699 | Say Y here if you want to help to debug reduced OS jitter. | 700 | Say Y here if you want to help to debug reduced OS jitter. |
700 | Say N here if you are unsure. | 701 | Say N here if you are unsure. |
701 | 702 | ||
702 | choice | 703 | choice |
703 | prompt "Build-forced no-CBs CPUs" | 704 | prompt "Build-forced no-CBs CPUs" |
704 | default RCU_NOCB_CPU_NONE | 705 | default RCU_NOCB_CPU_NONE |
705 | help | 706 | help |
706 | This option allows no-CBs CPUs (whose RCU callbacks are invoked | 707 | This option allows no-CBs CPUs (whose RCU callbacks are invoked |
707 | from kthreads rather than from softirq context) to be specified | 708 | from kthreads rather than from softirq context) to be specified |
708 | at build time. Additional no-CBs CPUs may be specified by | 709 | at build time. Additional no-CBs CPUs may be specified by |
709 | the rcu_nocbs= boot parameter. | 710 | the rcu_nocbs= boot parameter. |
710 | 711 | ||
711 | config RCU_NOCB_CPU_NONE | 712 | config RCU_NOCB_CPU_NONE |
712 | bool "No build_forced no-CBs CPUs" | 713 | bool "No build_forced no-CBs CPUs" |
713 | depends on RCU_NOCB_CPU && !NO_HZ_FULL | 714 | depends on RCU_NOCB_CPU && !NO_HZ_FULL |
714 | help | 715 | help |
715 | This option does not force any of the CPUs to be no-CBs CPUs. | 716 | This option does not force any of the CPUs to be no-CBs CPUs. |
716 | Only CPUs designated by the rcu_nocbs= boot parameter will be | 717 | Only CPUs designated by the rcu_nocbs= boot parameter will be |
717 | no-CBs CPUs, whose RCU callbacks will be invoked by per-CPU | 718 | no-CBs CPUs, whose RCU callbacks will be invoked by per-CPU |
718 | kthreads whose names begin with "rcuo". All other CPUs will | 719 | kthreads whose names begin with "rcuo". All other CPUs will |
719 | invoke their own RCU callbacks in softirq context. | 720 | invoke their own RCU callbacks in softirq context. |
720 | 721 | ||
721 | Select this option if you want to choose no-CBs CPUs at | 722 | Select this option if you want to choose no-CBs CPUs at |
722 | boot time, for example, to allow testing of different no-CBs | 723 | boot time, for example, to allow testing of different no-CBs |
723 | configurations without having to rebuild the kernel each time. | 724 | configurations without having to rebuild the kernel each time. |
724 | 725 | ||
725 | config RCU_NOCB_CPU_ZERO | 726 | config RCU_NOCB_CPU_ZERO |
726 | bool "CPU 0 is a build_forced no-CBs CPU" | 727 | bool "CPU 0 is a build_forced no-CBs CPU" |
727 | depends on RCU_NOCB_CPU && !NO_HZ_FULL | 728 | depends on RCU_NOCB_CPU && !NO_HZ_FULL |
728 | help | 729 | help |
729 | This option forces CPU 0 to be a no-CBs CPU, so that its RCU | 730 | This option forces CPU 0 to be a no-CBs CPU, so that its RCU |
730 | callbacks are invoked by a per-CPU kthread whose name begins | 731 | callbacks are invoked by a per-CPU kthread whose name begins |
731 | with "rcuo". Additional CPUs may be designated as no-CBs | 732 | with "rcuo". Additional CPUs may be designated as no-CBs |
732 | CPUs using the rcu_nocbs= boot parameter will be no-CBs CPUs. | 733 | CPUs using the rcu_nocbs= boot parameter will be no-CBs CPUs. |
733 | All other CPUs will invoke their own RCU callbacks in softirq | 734 | All other CPUs will invoke their own RCU callbacks in softirq |
734 | context. | 735 | context. |
735 | 736 | ||
736 | Select this if CPU 0 needs to be a no-CBs CPU for real-time | 737 | Select this if CPU 0 needs to be a no-CBs CPU for real-time |
737 | or energy-efficiency reasons, but the real reason it exists | 738 | or energy-efficiency reasons, but the real reason it exists |
738 | is to ensure that randconfig testing covers mixed systems. | 739 | is to ensure that randconfig testing covers mixed systems. |
739 | 740 | ||
740 | config RCU_NOCB_CPU_ALL | 741 | config RCU_NOCB_CPU_ALL |
741 | bool "All CPUs are build_forced no-CBs CPUs" | 742 | bool "All CPUs are build_forced no-CBs CPUs" |
742 | depends on RCU_NOCB_CPU | 743 | depends on RCU_NOCB_CPU |
743 | help | 744 | help |
744 | This option forces all CPUs to be no-CBs CPUs. The rcu_nocbs= | 745 | This option forces all CPUs to be no-CBs CPUs. The rcu_nocbs= |
745 | boot parameter will be ignored. All CPUs' RCU callbacks will | 746 | boot parameter will be ignored. All CPUs' RCU callbacks will |
746 | be executed in the context of per-CPU rcuo kthreads created for | 747 | be executed in the context of per-CPU rcuo kthreads created for |
747 | this purpose. Assuming that the kthreads whose names start with | 748 | this purpose. Assuming that the kthreads whose names start with |
748 | "rcuo" are bound to "housekeeping" CPUs, this reduces OS jitter | 749 | "rcuo" are bound to "housekeeping" CPUs, this reduces OS jitter |
749 | on the remaining CPUs, but might decrease memory locality during | 750 | on the remaining CPUs, but might decrease memory locality during |
750 | RCU-callback invocation, thus potentially degrading throughput. | 751 | RCU-callback invocation, thus potentially degrading throughput. |
751 | 752 | ||
752 | Select this if all CPUs need to be no-CBs CPUs for real-time | 753 | Select this if all CPUs need to be no-CBs CPUs for real-time |
753 | or energy-efficiency reasons. | 754 | or energy-efficiency reasons. |
754 | 755 | ||
755 | endchoice | 756 | endchoice |
756 | 757 | ||
757 | endmenu # "RCU Subsystem" | 758 | endmenu # "RCU Subsystem" |
758 | 759 | ||
759 | config IKCONFIG | 760 | config IKCONFIG |
760 | tristate "Kernel .config support" | 761 | tristate "Kernel .config support" |
761 | ---help--- | 762 | ---help--- |
762 | This option enables the complete Linux kernel ".config" file | 763 | This option enables the complete Linux kernel ".config" file |
763 | contents to be saved in the kernel. It provides documentation | 764 | contents to be saved in the kernel. It provides documentation |
764 | of which kernel options are used in a running kernel or in an | 765 | of which kernel options are used in a running kernel or in an |
765 | on-disk kernel. This information can be extracted from the kernel | 766 | on-disk kernel. This information can be extracted from the kernel |
766 | image file with the script scripts/extract-ikconfig and used as | 767 | image file with the script scripts/extract-ikconfig and used as |
767 | input to rebuild the current kernel or to build another kernel. | 768 | input to rebuild the current kernel or to build another kernel. |
768 | It can also be extracted from a running kernel by reading | 769 | It can also be extracted from a running kernel by reading |
769 | /proc/config.gz if enabled (below). | 770 | /proc/config.gz if enabled (below). |
770 | 771 | ||
771 | config IKCONFIG_PROC | 772 | config IKCONFIG_PROC |
772 | bool "Enable access to .config through /proc/config.gz" | 773 | bool "Enable access to .config through /proc/config.gz" |
773 | depends on IKCONFIG && PROC_FS | 774 | depends on IKCONFIG && PROC_FS |
774 | ---help--- | 775 | ---help--- |
775 | This option enables access to the kernel configuration file | 776 | This option enables access to the kernel configuration file |
776 | through /proc/config.gz. | 777 | through /proc/config.gz. |
777 | 778 | ||
778 | config LOG_BUF_SHIFT | 779 | config LOG_BUF_SHIFT |
779 | int "Kernel log buffer size (16 => 64KB, 17 => 128KB)" | 780 | int "Kernel log buffer size (16 => 64KB, 17 => 128KB)" |
780 | range 12 21 | 781 | range 12 21 |
781 | default 17 | 782 | default 17 |
782 | help | 783 | help |
783 | Select kernel log buffer size as a power of 2. | 784 | Select kernel log buffer size as a power of 2. |
784 | Examples: | 785 | Examples: |
785 | 17 => 128 KB | 786 | 17 => 128 KB |
786 | 16 => 64 KB | 787 | 16 => 64 KB |
787 | 15 => 32 KB | 788 | 15 => 32 KB |
788 | 14 => 16 KB | 789 | 14 => 16 KB |
789 | 13 => 8 KB | 790 | 13 => 8 KB |
790 | 12 => 4 KB | 791 | 12 => 4 KB |
791 | 792 | ||
792 | # | 793 | # |
793 | # Architectures with an unreliable sched_clock() should select this: | 794 | # Architectures with an unreliable sched_clock() should select this: |
794 | # | 795 | # |
795 | config HAVE_UNSTABLE_SCHED_CLOCK | 796 | config HAVE_UNSTABLE_SCHED_CLOCK |
796 | bool | 797 | bool |
797 | 798 | ||
798 | config GENERIC_SCHED_CLOCK | 799 | config GENERIC_SCHED_CLOCK |
799 | bool | 800 | bool |
800 | 801 | ||
801 | # | 802 | # |
802 | # For architectures that want to enable the support for NUMA-affine scheduler | 803 | # For architectures that want to enable the support for NUMA-affine scheduler |
803 | # balancing logic: | 804 | # balancing logic: |
804 | # | 805 | # |
805 | config ARCH_SUPPORTS_NUMA_BALANCING | 806 | config ARCH_SUPPORTS_NUMA_BALANCING |
806 | bool | 807 | bool |
807 | 808 | ||
808 | # For architectures that (ab)use NUMA to represent different memory regions | 809 | # For architectures that (ab)use NUMA to represent different memory regions |
809 | # all cpu-local but of different latencies, such as SuperH. | 810 | # all cpu-local but of different latencies, such as SuperH. |
810 | # | 811 | # |
811 | config ARCH_WANT_NUMA_VARIABLE_LOCALITY | 812 | config ARCH_WANT_NUMA_VARIABLE_LOCALITY |
812 | bool | 813 | bool |
813 | 814 | ||
814 | # | 815 | # |
815 | # For architectures that are willing to define _PAGE_NUMA as _PAGE_PROTNONE | 816 | # For architectures that are willing to define _PAGE_NUMA as _PAGE_PROTNONE |
816 | config ARCH_WANTS_PROT_NUMA_PROT_NONE | 817 | config ARCH_WANTS_PROT_NUMA_PROT_NONE |
817 | bool | 818 | bool |
818 | 819 | ||
819 | config ARCH_USES_NUMA_PROT_NONE | 820 | config ARCH_USES_NUMA_PROT_NONE |
820 | bool | 821 | bool |
821 | default y | 822 | default y |
822 | depends on ARCH_WANTS_PROT_NUMA_PROT_NONE | 823 | depends on ARCH_WANTS_PROT_NUMA_PROT_NONE |
823 | depends on NUMA_BALANCING | 824 | depends on NUMA_BALANCING |
824 | 825 | ||
825 | config NUMA_BALANCING_DEFAULT_ENABLED | 826 | config NUMA_BALANCING_DEFAULT_ENABLED |
826 | bool "Automatically enable NUMA aware memory/task placement" | 827 | bool "Automatically enable NUMA aware memory/task placement" |
827 | default y | 828 | default y |
828 | depends on NUMA_BALANCING | 829 | depends on NUMA_BALANCING |
829 | help | 830 | help |
830 | If set, autonumic NUMA balancing will be enabled if running on a NUMA | 831 | If set, autonumic NUMA balancing will be enabled if running on a NUMA |
831 | machine. | 832 | machine. |
832 | 833 | ||
833 | config NUMA_BALANCING | 834 | config NUMA_BALANCING |
834 | bool "Memory placement aware NUMA scheduler" | 835 | bool "Memory placement aware NUMA scheduler" |
835 | depends on ARCH_SUPPORTS_NUMA_BALANCING | 836 | depends on ARCH_SUPPORTS_NUMA_BALANCING |
836 | depends on !ARCH_WANT_NUMA_VARIABLE_LOCALITY | 837 | depends on !ARCH_WANT_NUMA_VARIABLE_LOCALITY |
837 | depends on SMP && NUMA && MIGRATION | 838 | depends on SMP && NUMA && MIGRATION |
838 | help | 839 | help |
839 | This option adds support for automatic NUMA aware memory/task placement. | 840 | This option adds support for automatic NUMA aware memory/task placement. |
840 | The mechanism is quite primitive and is based on migrating memory when | 841 | The mechanism is quite primitive and is based on migrating memory when |
841 | it is references to the node the task is running on. | 842 | it is references to the node the task is running on. |
842 | 843 | ||
843 | This system will be inactive on UMA systems. | 844 | This system will be inactive on UMA systems. |
844 | 845 | ||
845 | menuconfig CGROUPS | 846 | menuconfig CGROUPS |
846 | boolean "Control Group support" | 847 | boolean "Control Group support" |
847 | depends on EVENTFD | 848 | depends on EVENTFD |
848 | help | 849 | help |
849 | This option adds support for grouping sets of processes together, for | 850 | This option adds support for grouping sets of processes together, for |
850 | use with process control subsystems such as Cpusets, CFS, memory | 851 | use with process control subsystems such as Cpusets, CFS, memory |
851 | controls or device isolation. | 852 | controls or device isolation. |
852 | See | 853 | See |
853 | - Documentation/scheduler/sched-design-CFS.txt (CFS) | 854 | - Documentation/scheduler/sched-design-CFS.txt (CFS) |
854 | - Documentation/cgroups/ (features for grouping, isolation | 855 | - Documentation/cgroups/ (features for grouping, isolation |
855 | and resource control) | 856 | and resource control) |
856 | 857 | ||
857 | Say N if unsure. | 858 | Say N if unsure. |
858 | 859 | ||
859 | if CGROUPS | 860 | if CGROUPS |
860 | 861 | ||
861 | config CGROUP_DEBUG | 862 | config CGROUP_DEBUG |
862 | bool "Example debug cgroup subsystem" | 863 | bool "Example debug cgroup subsystem" |
863 | default n | 864 | default n |
864 | help | 865 | help |
865 | This option enables a simple cgroup subsystem that | 866 | This option enables a simple cgroup subsystem that |
866 | exports useful debugging information about the cgroups | 867 | exports useful debugging information about the cgroups |
867 | framework. | 868 | framework. |
868 | 869 | ||
869 | Say N if unsure. | 870 | Say N if unsure. |
870 | 871 | ||
871 | config CGROUP_FREEZER | 872 | config CGROUP_FREEZER |
872 | bool "Freezer cgroup subsystem" | 873 | bool "Freezer cgroup subsystem" |
873 | help | 874 | help |
874 | Provides a way to freeze and unfreeze all tasks in a | 875 | Provides a way to freeze and unfreeze all tasks in a |
875 | cgroup. | 876 | cgroup. |
876 | 877 | ||
877 | config CGROUP_DEVICE | 878 | config CGROUP_DEVICE |
878 | bool "Device controller for cgroups" | 879 | bool "Device controller for cgroups" |
879 | help | 880 | help |
880 | Provides a cgroup implementing whitelists for devices which | 881 | Provides a cgroup implementing whitelists for devices which |
881 | a process in the cgroup can mknod or open. | 882 | a process in the cgroup can mknod or open. |
882 | 883 | ||
883 | config CPUSETS | 884 | config CPUSETS |
884 | bool "Cpuset support" | 885 | bool "Cpuset support" |
885 | help | 886 | help |
886 | This option will let you create and manage CPUSETs which | 887 | This option will let you create and manage CPUSETs which |
887 | allow dynamically partitioning a system into sets of CPUs and | 888 | allow dynamically partitioning a system into sets of CPUs and |
888 | Memory Nodes and assigning tasks to run only within those sets. | 889 | Memory Nodes and assigning tasks to run only within those sets. |
889 | This is primarily useful on large SMP or NUMA systems. | 890 | This is primarily useful on large SMP or NUMA systems. |
890 | 891 | ||
891 | Say N if unsure. | 892 | Say N if unsure. |
892 | 893 | ||
893 | config PROC_PID_CPUSET | 894 | config PROC_PID_CPUSET |
894 | bool "Include legacy /proc/<pid>/cpuset file" | 895 | bool "Include legacy /proc/<pid>/cpuset file" |
895 | depends on CPUSETS | 896 | depends on CPUSETS |
896 | default y | 897 | default y |
897 | 898 | ||
898 | config CGROUP_CPUACCT | 899 | config CGROUP_CPUACCT |
899 | bool "Simple CPU accounting cgroup subsystem" | 900 | bool "Simple CPU accounting cgroup subsystem" |
900 | help | 901 | help |
901 | Provides a simple Resource Controller for monitoring the | 902 | Provides a simple Resource Controller for monitoring the |
902 | total CPU consumed by the tasks in a cgroup. | 903 | total CPU consumed by the tasks in a cgroup. |
903 | 904 | ||
904 | config RESOURCE_COUNTERS | 905 | config RESOURCE_COUNTERS |
905 | bool "Resource counters" | 906 | bool "Resource counters" |
906 | help | 907 | help |
907 | This option enables controller independent resource accounting | 908 | This option enables controller independent resource accounting |
908 | infrastructure that works with cgroups. | 909 | infrastructure that works with cgroups. |
909 | 910 | ||
910 | config MEMCG | 911 | config MEMCG |
911 | bool "Memory Resource Controller for Control Groups" | 912 | bool "Memory Resource Controller for Control Groups" |
912 | depends on RESOURCE_COUNTERS | 913 | depends on RESOURCE_COUNTERS |
913 | select MM_OWNER | 914 | select MM_OWNER |
914 | help | 915 | help |
915 | Provides a memory resource controller that manages both anonymous | 916 | Provides a memory resource controller that manages both anonymous |
916 | memory and page cache. (See Documentation/cgroups/memory.txt) | 917 | memory and page cache. (See Documentation/cgroups/memory.txt) |
917 | 918 | ||
918 | Note that setting this option increases fixed memory overhead | 919 | Note that setting this option increases fixed memory overhead |
919 | associated with each page of memory in the system. By this, | 920 | associated with each page of memory in the system. By this, |
920 | 8(16)bytes/PAGE_SIZE on 32(64)bit system will be occupied by memory | 921 | 8(16)bytes/PAGE_SIZE on 32(64)bit system will be occupied by memory |
921 | usage tracking struct at boot. Total amount of this is printed out | 922 | usage tracking struct at boot. Total amount of this is printed out |
922 | at boot. | 923 | at boot. |
923 | 924 | ||
924 | Only enable when you're ok with these trade offs and really | 925 | Only enable when you're ok with these trade offs and really |
925 | sure you need the memory resource controller. Even when you enable | 926 | sure you need the memory resource controller. Even when you enable |
926 | this, you can set "cgroup_disable=memory" at your boot option to | 927 | this, you can set "cgroup_disable=memory" at your boot option to |
927 | disable memory resource controller and you can avoid overheads. | 928 | disable memory resource controller and you can avoid overheads. |
928 | (and lose benefits of memory resource controller) | 929 | (and lose benefits of memory resource controller) |
929 | 930 | ||
930 | This config option also selects MM_OWNER config option, which | 931 | This config option also selects MM_OWNER config option, which |
931 | could in turn add some fork/exit overhead. | 932 | could in turn add some fork/exit overhead. |
932 | 933 | ||
933 | config MEMCG_SWAP | 934 | config MEMCG_SWAP |
934 | bool "Memory Resource Controller Swap Extension" | 935 | bool "Memory Resource Controller Swap Extension" |
935 | depends on MEMCG && SWAP | 936 | depends on MEMCG && SWAP |
936 | help | 937 | help |
937 | Add swap management feature to memory resource controller. When you | 938 | Add swap management feature to memory resource controller. When you |
938 | enable this, you can limit mem+swap usage per cgroup. In other words, | 939 | enable this, you can limit mem+swap usage per cgroup. In other words, |
939 | when you disable this, memory resource controller has no cares to | 940 | when you disable this, memory resource controller has no cares to |
940 | usage of swap...a process can exhaust all of the swap. This extension | 941 | usage of swap...a process can exhaust all of the swap. This extension |
941 | is useful when you want to avoid exhaustion swap but this itself | 942 | is useful when you want to avoid exhaustion swap but this itself |
942 | adds more overheads and consumes memory for remembering information. | 943 | adds more overheads and consumes memory for remembering information. |
943 | Especially if you use 32bit system or small memory system, please | 944 | Especially if you use 32bit system or small memory system, please |
944 | be careful about enabling this. When memory resource controller | 945 | be careful about enabling this. When memory resource controller |
945 | is disabled by boot option, this will be automatically disabled and | 946 | is disabled by boot option, this will be automatically disabled and |
946 | there will be no overhead from this. Even when you set this config=y, | 947 | there will be no overhead from this. Even when you set this config=y, |
947 | if boot option "swapaccount=0" is set, swap will not be accounted. | 948 | if boot option "swapaccount=0" is set, swap will not be accounted. |
948 | Now, memory usage of swap_cgroup is 2 bytes per entry. If swap page | 949 | Now, memory usage of swap_cgroup is 2 bytes per entry. If swap page |
949 | size is 4096bytes, 512k per 1Gbytes of swap. | 950 | size is 4096bytes, 512k per 1Gbytes of swap. |
950 | config MEMCG_SWAP_ENABLED | 951 | config MEMCG_SWAP_ENABLED |
951 | bool "Memory Resource Controller Swap Extension enabled by default" | 952 | bool "Memory Resource Controller Swap Extension enabled by default" |
952 | depends on MEMCG_SWAP | 953 | depends on MEMCG_SWAP |
953 | default y | 954 | default y |
954 | help | 955 | help |
955 | Memory Resource Controller Swap Extension comes with its price in | 956 | Memory Resource Controller Swap Extension comes with its price in |
956 | a bigger memory consumption. General purpose distribution kernels | 957 | a bigger memory consumption. General purpose distribution kernels |
957 | which want to enable the feature but keep it disabled by default | 958 | which want to enable the feature but keep it disabled by default |
958 | and let the user enable it by swapaccount boot command line | 959 | and let the user enable it by swapaccount boot command line |
959 | parameter should have this option unselected. | 960 | parameter should have this option unselected. |
960 | For those who want to have the feature enabled by default should | 961 | For those who want to have the feature enabled by default should |
961 | select this option (if, for some reason, they need to disable it | 962 | select this option (if, for some reason, they need to disable it |
962 | then swapaccount=0 does the trick). | 963 | then swapaccount=0 does the trick). |
963 | config MEMCG_KMEM | 964 | config MEMCG_KMEM |
964 | bool "Memory Resource Controller Kernel Memory accounting" | 965 | bool "Memory Resource Controller Kernel Memory accounting" |
965 | depends on MEMCG | 966 | depends on MEMCG |
966 | depends on SLUB || SLAB | 967 | depends on SLUB || SLAB |
967 | help | 968 | help |
968 | The Kernel Memory extension for Memory Resource Controller can limit | 969 | The Kernel Memory extension for Memory Resource Controller can limit |
969 | the amount of memory used by kernel objects in the system. Those are | 970 | the amount of memory used by kernel objects in the system. Those are |
970 | fundamentally different from the entities handled by the standard | 971 | fundamentally different from the entities handled by the standard |
971 | Memory Controller, which are page-based, and can be swapped. Users of | 972 | Memory Controller, which are page-based, and can be swapped. Users of |
972 | the kmem extension can use it to guarantee that no group of processes | 973 | the kmem extension can use it to guarantee that no group of processes |
973 | will ever exhaust kernel resources alone. | 974 | will ever exhaust kernel resources alone. |
974 | 975 | ||
975 | config CGROUP_HUGETLB | 976 | config CGROUP_HUGETLB |
976 | bool "HugeTLB Resource Controller for Control Groups" | 977 | bool "HugeTLB Resource Controller for Control Groups" |
977 | depends on RESOURCE_COUNTERS && HUGETLB_PAGE | 978 | depends on RESOURCE_COUNTERS && HUGETLB_PAGE |
978 | default n | 979 | default n |
979 | help | 980 | help |
980 | Provides a cgroup Resource Controller for HugeTLB pages. | 981 | Provides a cgroup Resource Controller for HugeTLB pages. |
981 | When you enable this, you can put a per cgroup limit on HugeTLB usage. | 982 | When you enable this, you can put a per cgroup limit on HugeTLB usage. |
982 | The limit is enforced during page fault. Since HugeTLB doesn't | 983 | The limit is enforced during page fault. Since HugeTLB doesn't |
983 | support page reclaim, enforcing the limit at page fault time implies | 984 | support page reclaim, enforcing the limit at page fault time implies |
984 | that, the application will get SIGBUS signal if it tries to access | 985 | that, the application will get SIGBUS signal if it tries to access |
985 | HugeTLB pages beyond its limit. This requires the application to know | 986 | HugeTLB pages beyond its limit. This requires the application to know |
986 | beforehand how much HugeTLB pages it would require for its use. The | 987 | beforehand how much HugeTLB pages it would require for its use. The |
987 | control group is tracked in the third page lru pointer. This means | 988 | control group is tracked in the third page lru pointer. This means |
988 | that we cannot use the controller with huge page less than 3 pages. | 989 | that we cannot use the controller with huge page less than 3 pages. |
989 | 990 | ||
990 | config CGROUP_PERF | 991 | config CGROUP_PERF |
991 | bool "Enable perf_event per-cpu per-container group (cgroup) monitoring" | 992 | bool "Enable perf_event per-cpu per-container group (cgroup) monitoring" |
992 | depends on PERF_EVENTS && CGROUPS | 993 | depends on PERF_EVENTS && CGROUPS |
993 | help | 994 | help |
994 | This option extends the per-cpu mode to restrict monitoring to | 995 | This option extends the per-cpu mode to restrict monitoring to |
995 | threads which belong to the cgroup specified and run on the | 996 | threads which belong to the cgroup specified and run on the |
996 | designated cpu. | 997 | designated cpu. |
997 | 998 | ||
998 | Say N if unsure. | 999 | Say N if unsure. |
999 | 1000 | ||
1000 | menuconfig CGROUP_SCHED | 1001 | menuconfig CGROUP_SCHED |
1001 | bool "Group CPU scheduler" | 1002 | bool "Group CPU scheduler" |
1002 | default n | 1003 | default n |
1003 | help | 1004 | help |
1004 | This feature lets CPU scheduler recognize task groups and control CPU | 1005 | This feature lets CPU scheduler recognize task groups and control CPU |
1005 | bandwidth allocation to such task groups. It uses cgroups to group | 1006 | bandwidth allocation to such task groups. It uses cgroups to group |
1006 | tasks. | 1007 | tasks. |
1007 | 1008 | ||
1008 | if CGROUP_SCHED | 1009 | if CGROUP_SCHED |
1009 | config FAIR_GROUP_SCHED | 1010 | config FAIR_GROUP_SCHED |
1010 | bool "Group scheduling for SCHED_OTHER" | 1011 | bool "Group scheduling for SCHED_OTHER" |
1011 | depends on CGROUP_SCHED | 1012 | depends on CGROUP_SCHED |
1012 | default CGROUP_SCHED | 1013 | default CGROUP_SCHED |
1013 | 1014 | ||
1014 | config CFS_BANDWIDTH | 1015 | config CFS_BANDWIDTH |
1015 | bool "CPU bandwidth provisioning for FAIR_GROUP_SCHED" | 1016 | bool "CPU bandwidth provisioning for FAIR_GROUP_SCHED" |
1016 | depends on FAIR_GROUP_SCHED | 1017 | depends on FAIR_GROUP_SCHED |
1017 | default n | 1018 | default n |
1018 | help | 1019 | help |
1019 | This option allows users to define CPU bandwidth rates (limits) for | 1020 | This option allows users to define CPU bandwidth rates (limits) for |
1020 | tasks running within the fair group scheduler. Groups with no limit | 1021 | tasks running within the fair group scheduler. Groups with no limit |
1021 | set are considered to be unconstrained and will run with no | 1022 | set are considered to be unconstrained and will run with no |
1022 | restriction. | 1023 | restriction. |
1023 | See tip/Documentation/scheduler/sched-bwc.txt for more information. | 1024 | See tip/Documentation/scheduler/sched-bwc.txt for more information. |
1024 | 1025 | ||
1025 | config RT_GROUP_SCHED | 1026 | config RT_GROUP_SCHED |
1026 | bool "Group scheduling for SCHED_RR/FIFO" | 1027 | bool "Group scheduling for SCHED_RR/FIFO" |
1027 | depends on CGROUP_SCHED | 1028 | depends on CGROUP_SCHED |
1028 | default n | 1029 | default n |
1029 | help | 1030 | help |
1030 | This feature lets you explicitly allocate real CPU bandwidth | 1031 | This feature lets you explicitly allocate real CPU bandwidth |
1031 | to task groups. If enabled, it will also make it impossible to | 1032 | to task groups. If enabled, it will also make it impossible to |
1032 | schedule realtime tasks for non-root users until you allocate | 1033 | schedule realtime tasks for non-root users until you allocate |
1033 | realtime bandwidth for them. | 1034 | realtime bandwidth for them. |
1034 | See Documentation/scheduler/sched-rt-group.txt for more information. | 1035 | See Documentation/scheduler/sched-rt-group.txt for more information. |
1035 | 1036 | ||
1036 | endif #CGROUP_SCHED | 1037 | endif #CGROUP_SCHED |
1037 | 1038 | ||
1038 | config BLK_CGROUP | 1039 | config BLK_CGROUP |
1039 | bool "Block IO controller" | 1040 | bool "Block IO controller" |
1040 | depends on BLOCK | 1041 | depends on BLOCK |
1041 | default n | 1042 | default n |
1042 | ---help--- | 1043 | ---help--- |
1043 | Generic block IO controller cgroup interface. This is the common | 1044 | Generic block IO controller cgroup interface. This is the common |
1044 | cgroup interface which should be used by various IO controlling | 1045 | cgroup interface which should be used by various IO controlling |
1045 | policies. | 1046 | policies. |
1046 | 1047 | ||
1047 | Currently, CFQ IO scheduler uses it to recognize task groups and | 1048 | Currently, CFQ IO scheduler uses it to recognize task groups and |
1048 | control disk bandwidth allocation (proportional time slice allocation) | 1049 | control disk bandwidth allocation (proportional time slice allocation) |
1049 | to such task groups. It is also used by bio throttling logic in | 1050 | to such task groups. It is also used by bio throttling logic in |
1050 | block layer to implement upper limit in IO rates on a device. | 1051 | block layer to implement upper limit in IO rates on a device. |
1051 | 1052 | ||
1052 | This option only enables generic Block IO controller infrastructure. | 1053 | This option only enables generic Block IO controller infrastructure. |
1053 | One needs to also enable actual IO controlling logic/policy. For | 1054 | One needs to also enable actual IO controlling logic/policy. For |
1054 | enabling proportional weight division of disk bandwidth in CFQ, set | 1055 | enabling proportional weight division of disk bandwidth in CFQ, set |
1055 | CONFIG_CFQ_GROUP_IOSCHED=y; for enabling throttling policy, set | 1056 | CONFIG_CFQ_GROUP_IOSCHED=y; for enabling throttling policy, set |
1056 | CONFIG_BLK_DEV_THROTTLING=y. | 1057 | CONFIG_BLK_DEV_THROTTLING=y. |
1057 | 1058 | ||
1058 | See Documentation/cgroups/blkio-controller.txt for more information. | 1059 | See Documentation/cgroups/blkio-controller.txt for more information. |
1059 | 1060 | ||
1060 | config DEBUG_BLK_CGROUP | 1061 | config DEBUG_BLK_CGROUP |
1061 | bool "Enable Block IO controller debugging" | 1062 | bool "Enable Block IO controller debugging" |
1062 | depends on BLK_CGROUP | 1063 | depends on BLK_CGROUP |
1063 | default n | 1064 | default n |
1064 | ---help--- | 1065 | ---help--- |
1065 | Enable some debugging help. Currently it exports additional stat | 1066 | Enable some debugging help. Currently it exports additional stat |
1066 | files in a cgroup which can be useful for debugging. | 1067 | files in a cgroup which can be useful for debugging. |
1067 | 1068 | ||
1068 | endif # CGROUPS | 1069 | endif # CGROUPS |
1069 | 1070 | ||
1070 | config CHECKPOINT_RESTORE | 1071 | config CHECKPOINT_RESTORE |
1071 | bool "Checkpoint/restore support" if EXPERT | 1072 | bool "Checkpoint/restore support" if EXPERT |
1072 | default n | 1073 | default n |
1073 | help | 1074 | help |
1074 | Enables additional kernel features in a sake of checkpoint/restore. | 1075 | Enables additional kernel features in a sake of checkpoint/restore. |
1075 | In particular it adds auxiliary prctl codes to setup process text, | 1076 | In particular it adds auxiliary prctl codes to setup process text, |
1076 | data and heap segment sizes, and a few additional /proc filesystem | 1077 | data and heap segment sizes, and a few additional /proc filesystem |
1077 | entries. | 1078 | entries. |
1078 | 1079 | ||
1079 | If unsure, say N here. | 1080 | If unsure, say N here. |
1080 | 1081 | ||
1081 | menuconfig NAMESPACES | 1082 | menuconfig NAMESPACES |
1082 | bool "Namespaces support" if EXPERT | 1083 | bool "Namespaces support" if EXPERT |
1083 | default !EXPERT | 1084 | default !EXPERT |
1084 | help | 1085 | help |
1085 | Provides the way to make tasks work with different objects using | 1086 | Provides the way to make tasks work with different objects using |
1086 | the same id. For example same IPC id may refer to different objects | 1087 | the same id. For example same IPC id may refer to different objects |
1087 | or same user id or pid may refer to different tasks when used in | 1088 | or same user id or pid may refer to different tasks when used in |
1088 | different namespaces. | 1089 | different namespaces. |
1089 | 1090 | ||
1090 | if NAMESPACES | 1091 | if NAMESPACES |
1091 | 1092 | ||
1092 | config UTS_NS | 1093 | config UTS_NS |
1093 | bool "UTS namespace" | 1094 | bool "UTS namespace" |
1094 | default y | 1095 | default y |
1095 | help | 1096 | help |
1096 | In this namespace tasks see different info provided with the | 1097 | In this namespace tasks see different info provided with the |
1097 | uname() system call | 1098 | uname() system call |
1098 | 1099 | ||
1099 | config IPC_NS | 1100 | config IPC_NS |
1100 | bool "IPC namespace" | 1101 | bool "IPC namespace" |
1101 | depends on (SYSVIPC || POSIX_MQUEUE) | 1102 | depends on (SYSVIPC || POSIX_MQUEUE) |
1102 | default y | 1103 | default y |
1103 | help | 1104 | help |
1104 | In this namespace tasks work with IPC ids which correspond to | 1105 | In this namespace tasks work with IPC ids which correspond to |
1105 | different IPC objects in different namespaces. | 1106 | different IPC objects in different namespaces. |
1106 | 1107 | ||
1107 | config USER_NS | 1108 | config USER_NS |
1108 | bool "User namespace" | 1109 | bool "User namespace" |
1109 | depends on UIDGID_CONVERTED | 1110 | depends on UIDGID_CONVERTED |
1110 | select UIDGID_STRICT_TYPE_CHECKS | 1111 | select UIDGID_STRICT_TYPE_CHECKS |
1111 | 1112 | ||
1112 | default n | 1113 | default n |
1113 | help | 1114 | help |
1114 | This allows containers, i.e. vservers, to use user namespaces | 1115 | This allows containers, i.e. vservers, to use user namespaces |
1115 | to provide different user info for different servers. | 1116 | to provide different user info for different servers. |
1116 | 1117 | ||
1117 | When user namespaces are enabled in the kernel it is | 1118 | When user namespaces are enabled in the kernel it is |
1118 | recommended that the MEMCG and MEMCG_KMEM options also be | 1119 | recommended that the MEMCG and MEMCG_KMEM options also be |
1119 | enabled and that user-space use the memory control groups to | 1120 | enabled and that user-space use the memory control groups to |
1120 | limit the amount of memory a memory unprivileged users can | 1121 | limit the amount of memory a memory unprivileged users can |
1121 | use. | 1122 | use. |
1122 | 1123 | ||
1123 | If unsure, say N. | 1124 | If unsure, say N. |
1124 | 1125 | ||
1125 | config PID_NS | 1126 | config PID_NS |
1126 | bool "PID Namespaces" | 1127 | bool "PID Namespaces" |
1127 | default y | 1128 | default y |
1128 | help | 1129 | help |
1129 | Support process id namespaces. This allows having multiple | 1130 | Support process id namespaces. This allows having multiple |
1130 | processes with the same pid as long as they are in different | 1131 | processes with the same pid as long as they are in different |
1131 | pid namespaces. This is a building block of containers. | 1132 | pid namespaces. This is a building block of containers. |
1132 | 1133 | ||
1133 | config NET_NS | 1134 | config NET_NS |
1134 | bool "Network namespace" | 1135 | bool "Network namespace" |
1135 | depends on NET | 1136 | depends on NET |
1136 | default y | 1137 | default y |
1137 | help | 1138 | help |
1138 | Allow user space to create what appear to be multiple instances | 1139 | Allow user space to create what appear to be multiple instances |
1139 | of the network stack. | 1140 | of the network stack. |
1140 | 1141 | ||
1141 | endif # NAMESPACES | 1142 | endif # NAMESPACES |
1142 | 1143 | ||
1143 | config UIDGID_CONVERTED | 1144 | config UIDGID_CONVERTED |
1144 | # True if all of the selected software conmponents are known | 1145 | # True if all of the selected software conmponents are known |
1145 | # to have uid_t and gid_t converted to kuid_t and kgid_t | 1146 | # to have uid_t and gid_t converted to kuid_t and kgid_t |
1146 | # where appropriate and are otherwise safe to use with | 1147 | # where appropriate and are otherwise safe to use with |
1147 | # the user namespace. | 1148 | # the user namespace. |
1148 | bool | 1149 | bool |
1149 | default y | 1150 | default y |
1150 | 1151 | ||
1151 | # Filesystems | 1152 | # Filesystems |
1152 | depends on XFS_FS = n | 1153 | depends on XFS_FS = n |
1153 | 1154 | ||
1154 | config UIDGID_STRICT_TYPE_CHECKS | 1155 | config UIDGID_STRICT_TYPE_CHECKS |
1155 | bool "Require conversions between uid/gids and their internal representation" | 1156 | bool "Require conversions between uid/gids and their internal representation" |
1156 | depends on UIDGID_CONVERTED | 1157 | depends on UIDGID_CONVERTED |
1157 | default n | 1158 | default n |
1158 | help | 1159 | help |
1159 | While the nececessary conversions are being added to all subsystems this option allows | 1160 | While the nececessary conversions are being added to all subsystems this option allows |
1160 | the code to continue to build for unconverted subsystems. | 1161 | the code to continue to build for unconverted subsystems. |
1161 | 1162 | ||
1162 | Say Y here if you want the strict type checking enabled | 1163 | Say Y here if you want the strict type checking enabled |
1163 | 1164 | ||
1164 | config SCHED_AUTOGROUP | 1165 | config SCHED_AUTOGROUP |
1165 | bool "Automatic process group scheduling" | 1166 | bool "Automatic process group scheduling" |
1166 | select EVENTFD | 1167 | select EVENTFD |
1167 | select CGROUPS | 1168 | select CGROUPS |
1168 | select CGROUP_SCHED | 1169 | select CGROUP_SCHED |
1169 | select FAIR_GROUP_SCHED | 1170 | select FAIR_GROUP_SCHED |
1170 | help | 1171 | help |
1171 | This option optimizes the scheduler for common desktop workloads by | 1172 | This option optimizes the scheduler for common desktop workloads by |
1172 | automatically creating and populating task groups. This separation | 1173 | automatically creating and populating task groups. This separation |
1173 | of workloads isolates aggressive CPU burners (like build jobs) from | 1174 | of workloads isolates aggressive CPU burners (like build jobs) from |
1174 | desktop applications. Task group autogeneration is currently based | 1175 | desktop applications. Task group autogeneration is currently based |
1175 | upon task session. | 1176 | upon task session. |
1176 | 1177 | ||
1177 | config MM_OWNER | 1178 | config MM_OWNER |
1178 | bool | 1179 | bool |
1179 | 1180 | ||
1180 | config SYSFS_DEPRECATED | 1181 | config SYSFS_DEPRECATED |
1181 | bool "Enable deprecated sysfs features to support old userspace tools" | 1182 | bool "Enable deprecated sysfs features to support old userspace tools" |
1182 | depends on SYSFS | 1183 | depends on SYSFS |
1183 | default n | 1184 | default n |
1184 | help | 1185 | help |
1185 | This option adds code that switches the layout of the "block" class | 1186 | This option adds code that switches the layout of the "block" class |
1186 | devices, to not show up in /sys/class/block/, but only in | 1187 | devices, to not show up in /sys/class/block/, but only in |
1187 | /sys/block/. | 1188 | /sys/block/. |
1188 | 1189 | ||
1189 | This switch is only active when the sysfs.deprecated=1 boot option is | 1190 | This switch is only active when the sysfs.deprecated=1 boot option is |
1190 | passed or the SYSFS_DEPRECATED_V2 option is set. | 1191 | passed or the SYSFS_DEPRECATED_V2 option is set. |
1191 | 1192 | ||
1192 | This option allows new kernels to run on old distributions and tools, | 1193 | This option allows new kernels to run on old distributions and tools, |
1193 | which might get confused by /sys/class/block/. Since 2007/2008 all | 1194 | which might get confused by /sys/class/block/. Since 2007/2008 all |
1194 | major distributions and tools handle this just fine. | 1195 | major distributions and tools handle this just fine. |
1195 | 1196 | ||
1196 | Recent distributions and userspace tools after 2009/2010 depend on | 1197 | Recent distributions and userspace tools after 2009/2010 depend on |
1197 | the existence of /sys/class/block/, and will not work with this | 1198 | the existence of /sys/class/block/, and will not work with this |
1198 | option enabled. | 1199 | option enabled. |
1199 | 1200 | ||
1200 | Only if you are using a new kernel on an old distribution, you might | 1201 | Only if you are using a new kernel on an old distribution, you might |
1201 | need to say Y here. | 1202 | need to say Y here. |
1202 | 1203 | ||
1203 | config SYSFS_DEPRECATED_V2 | 1204 | config SYSFS_DEPRECATED_V2 |
1204 | bool "Enable deprecated sysfs features by default" | 1205 | bool "Enable deprecated sysfs features by default" |
1205 | default n | 1206 | default n |
1206 | depends on SYSFS | 1207 | depends on SYSFS |
1207 | depends on SYSFS_DEPRECATED | 1208 | depends on SYSFS_DEPRECATED |
1208 | help | 1209 | help |
1209 | Enable deprecated sysfs by default. | 1210 | Enable deprecated sysfs by default. |
1210 | 1211 | ||
1211 | See the CONFIG_SYSFS_DEPRECATED option for more details about this | 1212 | See the CONFIG_SYSFS_DEPRECATED option for more details about this |
1212 | option. | 1213 | option. |
1213 | 1214 | ||
1214 | Only if you are using a new kernel on an old distribution, you might | 1215 | Only if you are using a new kernel on an old distribution, you might |
1215 | need to say Y here. Even then, odds are you would not need it | 1216 | need to say Y here. Even then, odds are you would not need it |
1216 | enabled, you can always pass the boot option if absolutely necessary. | 1217 | enabled, you can always pass the boot option if absolutely necessary. |
1217 | 1218 | ||
1218 | config RELAY | 1219 | config RELAY |
1219 | bool "Kernel->user space relay support (formerly relayfs)" | 1220 | bool "Kernel->user space relay support (formerly relayfs)" |
1220 | help | 1221 | help |
1221 | This option enables support for relay interface support in | 1222 | This option enables support for relay interface support in |
1222 | certain file systems (such as debugfs). | 1223 | certain file systems (such as debugfs). |
1223 | It is designed to provide an efficient mechanism for tools and | 1224 | It is designed to provide an efficient mechanism for tools and |
1224 | facilities to relay large amounts of data from kernel space to | 1225 | facilities to relay large amounts of data from kernel space to |
1225 | user space. | 1226 | user space. |
1226 | 1227 | ||
1227 | If unsure, say N. | 1228 | If unsure, say N. |
1228 | 1229 | ||
1229 | config BLK_DEV_INITRD | 1230 | config BLK_DEV_INITRD |
1230 | bool "Initial RAM filesystem and RAM disk (initramfs/initrd) support" | 1231 | bool "Initial RAM filesystem and RAM disk (initramfs/initrd) support" |
1231 | depends on BROKEN || !FRV | 1232 | depends on BROKEN || !FRV |
1232 | help | 1233 | help |
1233 | The initial RAM filesystem is a ramfs which is loaded by the | 1234 | The initial RAM filesystem is a ramfs which is loaded by the |
1234 | boot loader (loadlin or lilo) and that is mounted as root | 1235 | boot loader (loadlin or lilo) and that is mounted as root |
1235 | before the normal boot procedure. It is typically used to | 1236 | before the normal boot procedure. It is typically used to |
1236 | load modules needed to mount the "real" root file system, | 1237 | load modules needed to mount the "real" root file system, |
1237 | etc. See <file:Documentation/initrd.txt> for details. | 1238 | etc. See <file:Documentation/initrd.txt> for details. |
1238 | 1239 | ||
1239 | If RAM disk support (BLK_DEV_RAM) is also included, this | 1240 | If RAM disk support (BLK_DEV_RAM) is also included, this |
1240 | also enables initial RAM disk (initrd) support and adds | 1241 | also enables initial RAM disk (initrd) support and adds |
1241 | 15 Kbytes (more on some other architectures) to the kernel size. | 1242 | 15 Kbytes (more on some other architectures) to the kernel size. |
1242 | 1243 | ||
1243 | If unsure say Y. | 1244 | If unsure say Y. |
1244 | 1245 | ||
1245 | if BLK_DEV_INITRD | 1246 | if BLK_DEV_INITRD |
1246 | 1247 | ||
1247 | source "usr/Kconfig" | 1248 | source "usr/Kconfig" |
1248 | 1249 | ||
1249 | endif | 1250 | endif |
1250 | 1251 | ||
1251 | config CC_OPTIMIZE_FOR_SIZE | 1252 | config CC_OPTIMIZE_FOR_SIZE |
1252 | bool "Optimize for size" | 1253 | bool "Optimize for size" |
1253 | help | 1254 | help |
1254 | Enabling this option will pass "-Os" instead of "-O2" to gcc | 1255 | Enabling this option will pass "-Os" instead of "-O2" to gcc |
1255 | resulting in a smaller kernel. | 1256 | resulting in a smaller kernel. |
1256 | 1257 | ||
1257 | If unsure, say N. | 1258 | If unsure, say N. |
1258 | 1259 | ||
1259 | config SYSCTL | 1260 | config SYSCTL |
1260 | bool | 1261 | bool |
1261 | 1262 | ||
1262 | config ANON_INODES | 1263 | config ANON_INODES |
1263 | bool | 1264 | bool |
1264 | 1265 | ||
1265 | config HAVE_UID16 | 1266 | config HAVE_UID16 |
1266 | bool | 1267 | bool |
1267 | 1268 | ||
1268 | config SYSCTL_EXCEPTION_TRACE | 1269 | config SYSCTL_EXCEPTION_TRACE |
1269 | bool | 1270 | bool |
1270 | help | 1271 | help |
1271 | Enable support for /proc/sys/debug/exception-trace. | 1272 | Enable support for /proc/sys/debug/exception-trace. |
1272 | 1273 | ||
1273 | config SYSCTL_ARCH_UNALIGN_NO_WARN | 1274 | config SYSCTL_ARCH_UNALIGN_NO_WARN |
1274 | bool | 1275 | bool |
1275 | help | 1276 | help |
1276 | Enable support for /proc/sys/kernel/ignore-unaligned-usertrap | 1277 | Enable support for /proc/sys/kernel/ignore-unaligned-usertrap |
1277 | Allows arch to define/use @no_unaligned_warning to possibly warn | 1278 | Allows arch to define/use @no_unaligned_warning to possibly warn |
1278 | about unaligned access emulation going on under the hood. | 1279 | about unaligned access emulation going on under the hood. |
1279 | 1280 | ||
1280 | config SYSCTL_ARCH_UNALIGN_ALLOW | 1281 | config SYSCTL_ARCH_UNALIGN_ALLOW |
1281 | bool | 1282 | bool |
1282 | help | 1283 | help |
1283 | Enable support for /proc/sys/kernel/unaligned-trap | 1284 | Enable support for /proc/sys/kernel/unaligned-trap |
1284 | Allows arches to define/use @unaligned_enabled to runtime toggle | 1285 | Allows arches to define/use @unaligned_enabled to runtime toggle |
1285 | the unaligned access emulation. | 1286 | the unaligned access emulation. |
1286 | see arch/parisc/kernel/unaligned.c for reference | 1287 | see arch/parisc/kernel/unaligned.c for reference |
1287 | 1288 | ||
1288 | config HAVE_PCSPKR_PLATFORM | 1289 | config HAVE_PCSPKR_PLATFORM |
1289 | bool | 1290 | bool |
1290 | 1291 | ||
1291 | menuconfig EXPERT | 1292 | menuconfig EXPERT |
1292 | bool "Configure standard kernel features (expert users)" | 1293 | bool "Configure standard kernel features (expert users)" |
1293 | # Unhide debug options, to make the on-by-default options visible | 1294 | # Unhide debug options, to make the on-by-default options visible |
1294 | select DEBUG_KERNEL | 1295 | select DEBUG_KERNEL |
1295 | help | 1296 | help |
1296 | This option allows certain base kernel options and settings | 1297 | This option allows certain base kernel options and settings |
1297 | to be disabled or tweaked. This is for specialized | 1298 | to be disabled or tweaked. This is for specialized |
1298 | environments which can tolerate a "non-standard" kernel. | 1299 | environments which can tolerate a "non-standard" kernel. |
1299 | Only use this if you really know what you are doing. | 1300 | Only use this if you really know what you are doing. |
1300 | 1301 | ||
1301 | config UID16 | 1302 | config UID16 |
1302 | bool "Enable 16-bit UID system calls" if EXPERT | 1303 | bool "Enable 16-bit UID system calls" if EXPERT |
1303 | depends on HAVE_UID16 | 1304 | depends on HAVE_UID16 |
1304 | default y | 1305 | default y |
1305 | help | 1306 | help |
1306 | This enables the legacy 16-bit UID syscall wrappers. | 1307 | This enables the legacy 16-bit UID syscall wrappers. |
1307 | 1308 | ||
1308 | config SYSCTL_SYSCALL | 1309 | config SYSCTL_SYSCALL |
1309 | bool "Sysctl syscall support" if EXPERT | 1310 | bool "Sysctl syscall support" if EXPERT |
1310 | depends on PROC_SYSCTL | 1311 | depends on PROC_SYSCTL |
1311 | default n | 1312 | default n |
1312 | select SYSCTL | 1313 | select SYSCTL |
1313 | ---help--- | 1314 | ---help--- |
1314 | sys_sysctl uses binary paths that have been found challenging | 1315 | sys_sysctl uses binary paths that have been found challenging |
1315 | to properly maintain and use. The interface in /proc/sys | 1316 | to properly maintain and use. The interface in /proc/sys |
1316 | using paths with ascii names is now the primary path to this | 1317 | using paths with ascii names is now the primary path to this |
1317 | information. | 1318 | information. |
1318 | 1319 | ||
1319 | Almost nothing using the binary sysctl interface so if you are | 1320 | Almost nothing using the binary sysctl interface so if you are |
1320 | trying to save some space it is probably safe to disable this, | 1321 | trying to save some space it is probably safe to disable this, |
1321 | making your kernel marginally smaller. | 1322 | making your kernel marginally smaller. |
1322 | 1323 | ||
1323 | If unsure say N here. | 1324 | If unsure say N here. |
1324 | 1325 | ||
1325 | config KALLSYMS | 1326 | config KALLSYMS |
1326 | bool "Load all symbols for debugging/ksymoops" if EXPERT | 1327 | bool "Load all symbols for debugging/ksymoops" if EXPERT |
1327 | default y | 1328 | default y |
1328 | help | 1329 | help |
1329 | Say Y here to let the kernel print out symbolic crash information and | 1330 | Say Y here to let the kernel print out symbolic crash information and |
1330 | symbolic stack backtraces. This increases the size of the kernel | 1331 | symbolic stack backtraces. This increases the size of the kernel |
1331 | somewhat, as all symbols have to be loaded into the kernel image. | 1332 | somewhat, as all symbols have to be loaded into the kernel image. |
1332 | 1333 | ||
1333 | config KALLSYMS_ALL | 1334 | config KALLSYMS_ALL |
1334 | bool "Include all symbols in kallsyms" | 1335 | bool "Include all symbols in kallsyms" |
1335 | depends on DEBUG_KERNEL && KALLSYMS | 1336 | depends on DEBUG_KERNEL && KALLSYMS |
1336 | help | 1337 | help |
1337 | Normally kallsyms only contains the symbols of functions for nicer | 1338 | Normally kallsyms only contains the symbols of functions for nicer |
1338 | OOPS messages and backtraces (i.e., symbols from the text and inittext | 1339 | OOPS messages and backtraces (i.e., symbols from the text and inittext |
1339 | sections). This is sufficient for most cases. And only in very rare | 1340 | sections). This is sufficient for most cases. And only in very rare |
1340 | cases (e.g., when a debugger is used) all symbols are required (e.g., | 1341 | cases (e.g., when a debugger is used) all symbols are required (e.g., |
1341 | names of variables from the data sections, etc). | 1342 | names of variables from the data sections, etc). |
1342 | 1343 | ||
1343 | This option makes sure that all symbols are loaded into the kernel | 1344 | This option makes sure that all symbols are loaded into the kernel |
1344 | image (i.e., symbols from all sections) in cost of increased kernel | 1345 | image (i.e., symbols from all sections) in cost of increased kernel |
1345 | size (depending on the kernel configuration, it may be 300KiB or | 1346 | size (depending on the kernel configuration, it may be 300KiB or |
1346 | something like this). | 1347 | something like this). |
1347 | 1348 | ||
1348 | Say N unless you really need all symbols. | 1349 | Say N unless you really need all symbols. |
1349 | 1350 | ||
1350 | config PRINTK | 1351 | config PRINTK |
1351 | default y | 1352 | default y |
1352 | bool "Enable support for printk" if EXPERT | 1353 | bool "Enable support for printk" if EXPERT |
1353 | select IRQ_WORK | 1354 | select IRQ_WORK |
1354 | help | 1355 | help |
1355 | This option enables normal printk support. Removing it | 1356 | This option enables normal printk support. Removing it |
1356 | eliminates most of the message strings from the kernel image | 1357 | eliminates most of the message strings from the kernel image |
1357 | and makes the kernel more or less silent. As this makes it | 1358 | and makes the kernel more or less silent. As this makes it |
1358 | very difficult to diagnose system problems, saying N here is | 1359 | very difficult to diagnose system problems, saying N here is |
1359 | strongly discouraged. | 1360 | strongly discouraged. |
1360 | 1361 | ||
1361 | config BUG | 1362 | config BUG |
1362 | bool "BUG() support" if EXPERT | 1363 | bool "BUG() support" if EXPERT |
1363 | default y | 1364 | default y |
1364 | help | 1365 | help |
1365 | Disabling this option eliminates support for BUG and WARN, reducing | 1366 | Disabling this option eliminates support for BUG and WARN, reducing |
1366 | the size of your kernel image and potentially quietly ignoring | 1367 | the size of your kernel image and potentially quietly ignoring |
1367 | numerous fatal conditions. You should only consider disabling this | 1368 | numerous fatal conditions. You should only consider disabling this |
1368 | option for embedded systems with no facilities for reporting errors. | 1369 | option for embedded systems with no facilities for reporting errors. |
1369 | Just say Y. | 1370 | Just say Y. |
1370 | 1371 | ||
1371 | config ELF_CORE | 1372 | config ELF_CORE |
1372 | depends on COREDUMP | 1373 | depends on COREDUMP |
1373 | default y | 1374 | default y |
1374 | bool "Enable ELF core dumps" if EXPERT | 1375 | bool "Enable ELF core dumps" if EXPERT |
1375 | help | 1376 | help |
1376 | Enable support for generating core dumps. Disabling saves about 4k. | 1377 | Enable support for generating core dumps. Disabling saves about 4k. |
1377 | 1378 | ||
1378 | 1379 | ||
1379 | config PCSPKR_PLATFORM | 1380 | config PCSPKR_PLATFORM |
1380 | bool "Enable PC-Speaker support" if EXPERT | 1381 | bool "Enable PC-Speaker support" if EXPERT |
1381 | depends on HAVE_PCSPKR_PLATFORM | 1382 | depends on HAVE_PCSPKR_PLATFORM |
1382 | select I8253_LOCK | 1383 | select I8253_LOCK |
1383 | default y | 1384 | default y |
1384 | help | 1385 | help |
1385 | This option allows to disable the internal PC-Speaker | 1386 | This option allows to disable the internal PC-Speaker |
1386 | support, saving some memory. | 1387 | support, saving some memory. |
1387 | 1388 | ||
1388 | config BASE_FULL | 1389 | config BASE_FULL |
1389 | default y | 1390 | default y |
1390 | bool "Enable full-sized data structures for core" if EXPERT | 1391 | bool "Enable full-sized data structures for core" if EXPERT |
1391 | help | 1392 | help |
1392 | Disabling this option reduces the size of miscellaneous core | 1393 | Disabling this option reduces the size of miscellaneous core |
1393 | kernel data structures. This saves memory on small machines, | 1394 | kernel data structures. This saves memory on small machines, |
1394 | but may reduce performance. | 1395 | but may reduce performance. |
1395 | 1396 | ||
1396 | config FUTEX | 1397 | config FUTEX |
1397 | bool "Enable futex support" if EXPERT | 1398 | bool "Enable futex support" if EXPERT |
1398 | default y | 1399 | default y |
1399 | select RT_MUTEXES | 1400 | select RT_MUTEXES |
1400 | help | 1401 | help |
1401 | Disabling this option will cause the kernel to be built without | 1402 | Disabling this option will cause the kernel to be built without |
1402 | support for "fast userspace mutexes". The resulting kernel may not | 1403 | support for "fast userspace mutexes". The resulting kernel may not |
1403 | run glibc-based applications correctly. | 1404 | run glibc-based applications correctly. |
1404 | 1405 | ||
1405 | config EPOLL | 1406 | config EPOLL |
1406 | bool "Enable eventpoll support" if EXPERT | 1407 | bool "Enable eventpoll support" if EXPERT |
1407 | default y | 1408 | default y |
1408 | select ANON_INODES | 1409 | select ANON_INODES |
1409 | help | 1410 | help |
1410 | Disabling this option will cause the kernel to be built without | 1411 | Disabling this option will cause the kernel to be built without |
1411 | support for epoll family of system calls. | 1412 | support for epoll family of system calls. |
1412 | 1413 | ||
1413 | config SIGNALFD | 1414 | config SIGNALFD |
1414 | bool "Enable signalfd() system call" if EXPERT | 1415 | bool "Enable signalfd() system call" if EXPERT |
1415 | select ANON_INODES | 1416 | select ANON_INODES |
1416 | default y | 1417 | default y |
1417 | help | 1418 | help |
1418 | Enable the signalfd() system call that allows to receive signals | 1419 | Enable the signalfd() system call that allows to receive signals |
1419 | on a file descriptor. | 1420 | on a file descriptor. |
1420 | 1421 | ||
1421 | If unsure, say Y. | 1422 | If unsure, say Y. |
1422 | 1423 | ||
1423 | config TIMERFD | 1424 | config TIMERFD |
1424 | bool "Enable timerfd() system call" if EXPERT | 1425 | bool "Enable timerfd() system call" if EXPERT |
1425 | select ANON_INODES | 1426 | select ANON_INODES |
1426 | default y | 1427 | default y |
1427 | help | 1428 | help |
1428 | Enable the timerfd() system call that allows to receive timer | 1429 | Enable the timerfd() system call that allows to receive timer |
1429 | events on a file descriptor. | 1430 | events on a file descriptor. |
1430 | 1431 | ||
1431 | If unsure, say Y. | 1432 | If unsure, say Y. |
1432 | 1433 | ||
1433 | config EVENTFD | 1434 | config EVENTFD |
1434 | bool "Enable eventfd() system call" if EXPERT | 1435 | bool "Enable eventfd() system call" if EXPERT |
1435 | select ANON_INODES | 1436 | select ANON_INODES |
1436 | default y | 1437 | default y |
1437 | help | 1438 | help |
1438 | Enable the eventfd() system call that allows to receive both | 1439 | Enable the eventfd() system call that allows to receive both |
1439 | kernel notification (ie. KAIO) or userspace notifications. | 1440 | kernel notification (ie. KAIO) or userspace notifications. |
1440 | 1441 | ||
1441 | If unsure, say Y. | 1442 | If unsure, say Y. |
1442 | 1443 | ||
1443 | config SHMEM | 1444 | config SHMEM |
1444 | bool "Use full shmem filesystem" if EXPERT | 1445 | bool "Use full shmem filesystem" if EXPERT |
1445 | default y | 1446 | default y |
1446 | depends on MMU | 1447 | depends on MMU |
1447 | help | 1448 | help |
1448 | The shmem is an internal filesystem used to manage shared memory. | 1449 | The shmem is an internal filesystem used to manage shared memory. |
1449 | It is backed by swap and manages resource limits. It is also exported | 1450 | It is backed by swap and manages resource limits. It is also exported |
1450 | to userspace as tmpfs if TMPFS is enabled. Disabling this | 1451 | to userspace as tmpfs if TMPFS is enabled. Disabling this |
1451 | option replaces shmem and tmpfs with the much simpler ramfs code, | 1452 | option replaces shmem and tmpfs with the much simpler ramfs code, |
1452 | which may be appropriate on small systems without swap. | 1453 | which may be appropriate on small systems without swap. |
1453 | 1454 | ||
1454 | config AIO | 1455 | config AIO |
1455 | bool "Enable AIO support" if EXPERT | 1456 | bool "Enable AIO support" if EXPERT |
1456 | default y | 1457 | default y |
1457 | help | 1458 | help |
1458 | This option enables POSIX asynchronous I/O which may by used | 1459 | This option enables POSIX asynchronous I/O which may by used |
1459 | by some high performance threaded applications. Disabling | 1460 | by some high performance threaded applications. Disabling |
1460 | this option saves about 7k. | 1461 | this option saves about 7k. |
1461 | 1462 | ||
1462 | config PCI_QUIRKS | 1463 | config PCI_QUIRKS |
1463 | default y | 1464 | default y |
1464 | bool "Enable PCI quirk workarounds" if EXPERT | 1465 | bool "Enable PCI quirk workarounds" if EXPERT |
1465 | depends on PCI | 1466 | depends on PCI |
1466 | help | 1467 | help |
1467 | This enables workarounds for various PCI chipset | 1468 | This enables workarounds for various PCI chipset |
1468 | bugs/quirks. Disable this only if your target machine is | 1469 | bugs/quirks. Disable this only if your target machine is |
1469 | unaffected by PCI quirks. | 1470 | unaffected by PCI quirks. |
1470 | 1471 | ||
1471 | config EMBEDDED | 1472 | config EMBEDDED |
1472 | bool "Embedded system" | 1473 | bool "Embedded system" |
1473 | select EXPERT | 1474 | select EXPERT |
1474 | help | 1475 | help |
1475 | This option should be enabled if compiling the kernel for | 1476 | This option should be enabled if compiling the kernel for |
1476 | an embedded system so certain expert options are available | 1477 | an embedded system so certain expert options are available |
1477 | for configuration. | 1478 | for configuration. |
1478 | 1479 | ||
1479 | config HAVE_PERF_EVENTS | 1480 | config HAVE_PERF_EVENTS |
1480 | bool | 1481 | bool |
1481 | help | 1482 | help |
1482 | See tools/perf/design.txt for details. | 1483 | See tools/perf/design.txt for details. |
1483 | 1484 | ||
1484 | config PERF_USE_VMALLOC | 1485 | config PERF_USE_VMALLOC |
1485 | bool | 1486 | bool |
1486 | help | 1487 | help |
1487 | See tools/perf/design.txt for details | 1488 | See tools/perf/design.txt for details |
1488 | 1489 | ||
1489 | menu "Kernel Performance Events And Counters" | 1490 | menu "Kernel Performance Events And Counters" |
1490 | 1491 | ||
1491 | config PERF_EVENTS | 1492 | config PERF_EVENTS |
1492 | bool "Kernel performance events and counters" | 1493 | bool "Kernel performance events and counters" |
1493 | default y if PROFILING | 1494 | default y if PROFILING |
1494 | depends on HAVE_PERF_EVENTS | 1495 | depends on HAVE_PERF_EVENTS |
1495 | select ANON_INODES | 1496 | select ANON_INODES |
1496 | select IRQ_WORK | 1497 | select IRQ_WORK |
1497 | help | 1498 | help |
1498 | Enable kernel support for various performance events provided | 1499 | Enable kernel support for various performance events provided |
1499 | by software and hardware. | 1500 | by software and hardware. |
1500 | 1501 | ||
1501 | Software events are supported either built-in or via the | 1502 | Software events are supported either built-in or via the |
1502 | use of generic tracepoints. | 1503 | use of generic tracepoints. |
1503 | 1504 | ||
1504 | Most modern CPUs support performance events via performance | 1505 | Most modern CPUs support performance events via performance |
1505 | counter registers. These registers count the number of certain | 1506 | counter registers. These registers count the number of certain |
1506 | types of hw events: such as instructions executed, cachemisses | 1507 | types of hw events: such as instructions executed, cachemisses |
1507 | suffered, or branches mis-predicted - without slowing down the | 1508 | suffered, or branches mis-predicted - without slowing down the |
1508 | kernel or applications. These registers can also trigger interrupts | 1509 | kernel or applications. These registers can also trigger interrupts |
1509 | when a threshold number of events have passed - and can thus be | 1510 | when a threshold number of events have passed - and can thus be |
1510 | used to profile the code that runs on that CPU. | 1511 | used to profile the code that runs on that CPU. |
1511 | 1512 | ||
1512 | The Linux Performance Event subsystem provides an abstraction of | 1513 | The Linux Performance Event subsystem provides an abstraction of |
1513 | these software and hardware event capabilities, available via a | 1514 | these software and hardware event capabilities, available via a |
1514 | system call and used by the "perf" utility in tools/perf/. It | 1515 | system call and used by the "perf" utility in tools/perf/. It |
1515 | provides per task and per CPU counters, and it provides event | 1516 | provides per task and per CPU counters, and it provides event |
1516 | capabilities on top of those. | 1517 | capabilities on top of those. |
1517 | 1518 | ||
1518 | Say Y if unsure. | 1519 | Say Y if unsure. |
1519 | 1520 | ||
1520 | config DEBUG_PERF_USE_VMALLOC | 1521 | config DEBUG_PERF_USE_VMALLOC |
1521 | default n | 1522 | default n |
1522 | bool "Debug: use vmalloc to back perf mmap() buffers" | 1523 | bool "Debug: use vmalloc to back perf mmap() buffers" |
1523 | depends on PERF_EVENTS && DEBUG_KERNEL | 1524 | depends on PERF_EVENTS && DEBUG_KERNEL |
1524 | select PERF_USE_VMALLOC | 1525 | select PERF_USE_VMALLOC |
1525 | help | 1526 | help |
1526 | Use vmalloc memory to back perf mmap() buffers. | 1527 | Use vmalloc memory to back perf mmap() buffers. |
1527 | 1528 | ||
1528 | Mostly useful for debugging the vmalloc code on platforms | 1529 | Mostly useful for debugging the vmalloc code on platforms |
1529 | that don't require it. | 1530 | that don't require it. |
1530 | 1531 | ||
1531 | Say N if unsure. | 1532 | Say N if unsure. |
1532 | 1533 | ||
1533 | endmenu | 1534 | endmenu |
1534 | 1535 | ||
1535 | config VM_EVENT_COUNTERS | 1536 | config VM_EVENT_COUNTERS |
1536 | default y | 1537 | default y |
1537 | bool "Enable VM event counters for /proc/vmstat" if EXPERT | 1538 | bool "Enable VM event counters for /proc/vmstat" if EXPERT |
1538 | help | 1539 | help |
1539 | VM event counters are needed for event counts to be shown. | 1540 | VM event counters are needed for event counts to be shown. |
1540 | This option allows the disabling of the VM event counters | 1541 | This option allows the disabling of the VM event counters |
1541 | on EXPERT systems. /proc/vmstat will only show page counts | 1542 | on EXPERT systems. /proc/vmstat will only show page counts |
1542 | if VM event counters are disabled. | 1543 | if VM event counters are disabled. |
1543 | 1544 | ||
1544 | config SLUB_DEBUG | 1545 | config SLUB_DEBUG |
1545 | default y | 1546 | default y |
1546 | bool "Enable SLUB debugging support" if EXPERT | 1547 | bool "Enable SLUB debugging support" if EXPERT |
1547 | depends on SLUB && SYSFS | 1548 | depends on SLUB && SYSFS |
1548 | help | 1549 | help |
1549 | SLUB has extensive debug support features. Disabling these can | 1550 | SLUB has extensive debug support features. Disabling these can |
1550 | result in significant savings in code size. This also disables | 1551 | result in significant savings in code size. This also disables |
1551 | SLUB sysfs support. /sys/slab will not exist and there will be | 1552 | SLUB sysfs support. /sys/slab will not exist and there will be |
1552 | no support for cache validation etc. | 1553 | no support for cache validation etc. |
1553 | 1554 | ||
1554 | config COMPAT_BRK | 1555 | config COMPAT_BRK |
1555 | bool "Disable heap randomization" | 1556 | bool "Disable heap randomization" |
1556 | default y | 1557 | default y |
1557 | help | 1558 | help |
1558 | Randomizing heap placement makes heap exploits harder, but it | 1559 | Randomizing heap placement makes heap exploits harder, but it |
1559 | also breaks ancient binaries (including anything libc5 based). | 1560 | also breaks ancient binaries (including anything libc5 based). |
1560 | This option changes the bootup default to heap randomization | 1561 | This option changes the bootup default to heap randomization |
1561 | disabled, and can be overridden at runtime by setting | 1562 | disabled, and can be overridden at runtime by setting |
1562 | /proc/sys/kernel/randomize_va_space to 2. | 1563 | /proc/sys/kernel/randomize_va_space to 2. |
1563 | 1564 | ||
1564 | On non-ancient distros (post-2000 ones) N is usually a safe choice. | 1565 | On non-ancient distros (post-2000 ones) N is usually a safe choice. |
1565 | 1566 | ||
1566 | choice | 1567 | choice |
1567 | prompt "Choose SLAB allocator" | 1568 | prompt "Choose SLAB allocator" |
1568 | default SLUB | 1569 | default SLUB |
1569 | help | 1570 | help |
1570 | This option allows to select a slab allocator. | 1571 | This option allows to select a slab allocator. |
1571 | 1572 | ||
1572 | config SLAB | 1573 | config SLAB |
1573 | bool "SLAB" | 1574 | bool "SLAB" |
1574 | help | 1575 | help |
1575 | The regular slab allocator that is established and known to work | 1576 | The regular slab allocator that is established and known to work |
1576 | well in all environments. It organizes cache hot objects in | 1577 | well in all environments. It organizes cache hot objects in |
1577 | per cpu and per node queues. | 1578 | per cpu and per node queues. |
1578 | 1579 | ||
1579 | config SLUB | 1580 | config SLUB |
1580 | bool "SLUB (Unqueued Allocator)" | 1581 | bool "SLUB (Unqueued Allocator)" |
1581 | help | 1582 | help |
1582 | SLUB is a slab allocator that minimizes cache line usage | 1583 | SLUB is a slab allocator that minimizes cache line usage |
1583 | instead of managing queues of cached objects (SLAB approach). | 1584 | instead of managing queues of cached objects (SLAB approach). |
1584 | Per cpu caching is realized using slabs of objects instead | 1585 | Per cpu caching is realized using slabs of objects instead |
1585 | of queues of objects. SLUB can use memory efficiently | 1586 | of queues of objects. SLUB can use memory efficiently |
1586 | and has enhanced diagnostics. SLUB is the default choice for | 1587 | and has enhanced diagnostics. SLUB is the default choice for |
1587 | a slab allocator. | 1588 | a slab allocator. |
1588 | 1589 | ||
1589 | config SLOB | 1590 | config SLOB |
1590 | depends on EXPERT | 1591 | depends on EXPERT |
1591 | bool "SLOB (Simple Allocator)" | 1592 | bool "SLOB (Simple Allocator)" |
1592 | help | 1593 | help |
1593 | SLOB replaces the stock allocator with a drastically simpler | 1594 | SLOB replaces the stock allocator with a drastically simpler |
1594 | allocator. SLOB is generally more space efficient but | 1595 | allocator. SLOB is generally more space efficient but |
1595 | does not perform as well on large systems. | 1596 | does not perform as well on large systems. |
1596 | 1597 | ||
1597 | endchoice | 1598 | endchoice |
1598 | 1599 | ||
1599 | config SLUB_CPU_PARTIAL | 1600 | config SLUB_CPU_PARTIAL |
1600 | default y | 1601 | default y |
1601 | depends on SLUB | 1602 | depends on SLUB |
1602 | bool "SLUB per cpu partial cache" | 1603 | bool "SLUB per cpu partial cache" |
1603 | help | 1604 | help |
1604 | Per cpu partial caches accellerate objects allocation and freeing | 1605 | Per cpu partial caches accellerate objects allocation and freeing |
1605 | that is local to a processor at the price of more indeterminism | 1606 | that is local to a processor at the price of more indeterminism |
1606 | in the latency of the free. On overflow these caches will be cleared | 1607 | in the latency of the free. On overflow these caches will be cleared |
1607 | which requires the taking of locks that may cause latency spikes. | 1608 | which requires the taking of locks that may cause latency spikes. |
1608 | Typically one would choose no for a realtime system. | 1609 | Typically one would choose no for a realtime system. |
1609 | 1610 | ||
1610 | config MMAP_ALLOW_UNINITIALIZED | 1611 | config MMAP_ALLOW_UNINITIALIZED |
1611 | bool "Allow mmapped anonymous memory to be uninitialized" | 1612 | bool "Allow mmapped anonymous memory to be uninitialized" |
1612 | depends on EXPERT && !MMU | 1613 | depends on EXPERT && !MMU |
1613 | default n | 1614 | default n |
1614 | help | 1615 | help |
1615 | Normally, and according to the Linux spec, anonymous memory obtained | 1616 | Normally, and according to the Linux spec, anonymous memory obtained |
1616 | from mmap() has it's contents cleared before it is passed to | 1617 | from mmap() has it's contents cleared before it is passed to |
1617 | userspace. Enabling this config option allows you to request that | 1618 | userspace. Enabling this config option allows you to request that |
1618 | mmap() skip that if it is given an MAP_UNINITIALIZED flag, thus | 1619 | mmap() skip that if it is given an MAP_UNINITIALIZED flag, thus |
1619 | providing a huge performance boost. If this option is not enabled, | 1620 | providing a huge performance boost. If this option is not enabled, |
1620 | then the flag will be ignored. | 1621 | then the flag will be ignored. |
1621 | 1622 | ||
1622 | This is taken advantage of by uClibc's malloc(), and also by | 1623 | This is taken advantage of by uClibc's malloc(), and also by |
1623 | ELF-FDPIC binfmt's brk and stack allocator. | 1624 | ELF-FDPIC binfmt's brk and stack allocator. |
1624 | 1625 | ||
1625 | Because of the obvious security issues, this option should only be | 1626 | Because of the obvious security issues, this option should only be |
1626 | enabled on embedded devices where you control what is run in | 1627 | enabled on embedded devices where you control what is run in |
1627 | userspace. Since that isn't generally a problem on no-MMU systems, | 1628 | userspace. Since that isn't generally a problem on no-MMU systems, |
1628 | it is normally safe to say Y here. | 1629 | it is normally safe to say Y here. |
1629 | 1630 | ||
1630 | See Documentation/nommu-mmap.txt for more information. | 1631 | See Documentation/nommu-mmap.txt for more information. |
1631 | 1632 | ||
1632 | config PROFILING | 1633 | config PROFILING |
1633 | bool "Profiling support" | 1634 | bool "Profiling support" |
1634 | help | 1635 | help |
1635 | Say Y here to enable the extended profiling support mechanisms used | 1636 | Say Y here to enable the extended profiling support mechanisms used |
1636 | by profilers such as OProfile. | 1637 | by profilers such as OProfile. |
1637 | 1638 | ||
1638 | # | 1639 | # |
1639 | # Place an empty function call at each tracepoint site. Can be | 1640 | # Place an empty function call at each tracepoint site. Can be |
1640 | # dynamically changed for a probe function. | 1641 | # dynamically changed for a probe function. |
1641 | # | 1642 | # |
1642 | config TRACEPOINTS | 1643 | config TRACEPOINTS |
1643 | bool | 1644 | bool |
1644 | 1645 | ||
1645 | source "arch/Kconfig" | 1646 | source "arch/Kconfig" |
1646 | 1647 | ||
1647 | endmenu # General setup | 1648 | endmenu # General setup |
1648 | 1649 | ||
1649 | config HAVE_GENERIC_DMA_COHERENT | 1650 | config HAVE_GENERIC_DMA_COHERENT |
1650 | bool | 1651 | bool |
1651 | default n | 1652 | default n |
1652 | 1653 | ||
1653 | config SLABINFO | 1654 | config SLABINFO |
1654 | bool | 1655 | bool |
1655 | depends on PROC_FS | 1656 | depends on PROC_FS |
1656 | depends on SLAB || SLUB_DEBUG | 1657 | depends on SLAB || SLUB_DEBUG |
1657 | default y | 1658 | default y |
1658 | 1659 | ||
1659 | config RT_MUTEXES | 1660 | config RT_MUTEXES |
1660 | boolean | 1661 | boolean |
1661 | 1662 | ||
1662 | config BASE_SMALL | 1663 | config BASE_SMALL |
1663 | int | 1664 | int |
1664 | default 0 if BASE_FULL | 1665 | default 0 if BASE_FULL |
1665 | default 1 if !BASE_FULL | 1666 | default 1 if !BASE_FULL |
1666 | 1667 | ||
1667 | menuconfig MODULES | 1668 | menuconfig MODULES |
1668 | bool "Enable loadable module support" | 1669 | bool "Enable loadable module support" |
1669 | help | 1670 | help |
1670 | Kernel modules are small pieces of compiled code which can | 1671 | Kernel modules are small pieces of compiled code which can |
1671 | be inserted in the running kernel, rather than being | 1672 | be inserted in the running kernel, rather than being |
1672 | permanently built into the kernel. You use the "modprobe" | 1673 | permanently built into the kernel. You use the "modprobe" |
1673 | tool to add (and sometimes remove) them. If you say Y here, | 1674 | tool to add (and sometimes remove) them. If you say Y here, |
1674 | many parts of the kernel can be built as modules (by | 1675 | many parts of the kernel can be built as modules (by |
1675 | answering M instead of Y where indicated): this is most | 1676 | answering M instead of Y where indicated): this is most |
1676 | useful for infrequently used options which are not required | 1677 | useful for infrequently used options which are not required |
1677 | for booting. For more information, see the man pages for | 1678 | for booting. For more information, see the man pages for |
1678 | modprobe, lsmod, modinfo, insmod and rmmod. | 1679 | modprobe, lsmod, modinfo, insmod and rmmod. |
1679 | 1680 | ||
1680 | If you say Y here, you will need to run "make | 1681 | If you say Y here, you will need to run "make |
1681 | modules_install" to put the modules under /lib/modules/ | 1682 | modules_install" to put the modules under /lib/modules/ |
1682 | where modprobe can find them (you may need to be root to do | 1683 | where modprobe can find them (you may need to be root to do |
1683 | this). | 1684 | this). |
1684 | 1685 | ||
1685 | If unsure, say Y. | 1686 | If unsure, say Y. |
1686 | 1687 | ||
1687 | if MODULES | 1688 | if MODULES |
1688 | 1689 | ||
1689 | config MODULE_FORCE_LOAD | 1690 | config MODULE_FORCE_LOAD |
1690 | bool "Forced module loading" | 1691 | bool "Forced module loading" |
1691 | default n | 1692 | default n |
1692 | help | 1693 | help |
1693 | Allow loading of modules without version information (ie. modprobe | 1694 | Allow loading of modules without version information (ie. modprobe |
1694 | --force). Forced module loading sets the 'F' (forced) taint flag and | 1695 | --force). Forced module loading sets the 'F' (forced) taint flag and |
1695 | is usually a really bad idea. | 1696 | is usually a really bad idea. |
1696 | 1697 | ||
1697 | config MODULE_UNLOAD | 1698 | config MODULE_UNLOAD |
1698 | bool "Module unloading" | 1699 | bool "Module unloading" |
1699 | help | 1700 | help |
1700 | Without this option you will not be able to unload any | 1701 | Without this option you will not be able to unload any |
1701 | modules (note that some modules may not be unloadable | 1702 | modules (note that some modules may not be unloadable |
1702 | anyway), which makes your kernel smaller, faster | 1703 | anyway), which makes your kernel smaller, faster |
1703 | and simpler. If unsure, say Y. | 1704 | and simpler. If unsure, say Y. |
1704 | 1705 | ||
1705 | config MODULE_FORCE_UNLOAD | 1706 | config MODULE_FORCE_UNLOAD |
1706 | bool "Forced module unloading" | 1707 | bool "Forced module unloading" |
1707 | depends on MODULE_UNLOAD | 1708 | depends on MODULE_UNLOAD |
1708 | help | 1709 | help |
1709 | This option allows you to force a module to unload, even if the | 1710 | This option allows you to force a module to unload, even if the |
1710 | kernel believes it is unsafe: the kernel will remove the module | 1711 | kernel believes it is unsafe: the kernel will remove the module |
1711 | without waiting for anyone to stop using it (using the -f option to | 1712 | without waiting for anyone to stop using it (using the -f option to |
1712 | rmmod). This is mainly for kernel developers and desperate users. | 1713 | rmmod). This is mainly for kernel developers and desperate users. |
1713 | If unsure, say N. | 1714 | If unsure, say N. |
1714 | 1715 | ||
1715 | config MODVERSIONS | 1716 | config MODVERSIONS |
1716 | bool "Module versioning support" | 1717 | bool "Module versioning support" |
1717 | help | 1718 | help |
1718 | Usually, you have to use modules compiled with your kernel. | 1719 | Usually, you have to use modules compiled with your kernel. |
1719 | Saying Y here makes it sometimes possible to use modules | 1720 | Saying Y here makes it sometimes possible to use modules |
1720 | compiled for different kernels, by adding enough information | 1721 | compiled for different kernels, by adding enough information |
1721 | to the modules to (hopefully) spot any changes which would | 1722 | to the modules to (hopefully) spot any changes which would |
1722 | make them incompatible with the kernel you are running. If | 1723 | make them incompatible with the kernel you are running. If |
1723 | unsure, say N. | 1724 | unsure, say N. |
1724 | 1725 | ||
1725 | config MODULE_SRCVERSION_ALL | 1726 | config MODULE_SRCVERSION_ALL |
1726 | bool "Source checksum for all modules" | 1727 | bool "Source checksum for all modules" |
1727 | help | 1728 | help |
1728 | Modules which contain a MODULE_VERSION get an extra "srcversion" | 1729 | Modules which contain a MODULE_VERSION get an extra "srcversion" |
1729 | field inserted into their modinfo section, which contains a | 1730 | field inserted into their modinfo section, which contains a |
1730 | sum of the source files which made it. This helps maintainers | 1731 | sum of the source files which made it. This helps maintainers |
1731 | see exactly which source was used to build a module (since | 1732 | see exactly which source was used to build a module (since |
1732 | others sometimes change the module source without updating | 1733 | others sometimes change the module source without updating |
1733 | the version). With this option, such a "srcversion" field | 1734 | the version). With this option, such a "srcversion" field |
1734 | will be created for all modules. If unsure, say N. | 1735 | will be created for all modules. If unsure, say N. |
1735 | 1736 | ||
1736 | config MODULE_SIG | 1737 | config MODULE_SIG |
1737 | bool "Module signature verification" | 1738 | bool "Module signature verification" |
1738 | depends on MODULES | 1739 | depends on MODULES |
1739 | select KEYS | 1740 | select KEYS |
1740 | select CRYPTO | 1741 | select CRYPTO |
1741 | select ASYMMETRIC_KEY_TYPE | 1742 | select ASYMMETRIC_KEY_TYPE |
1742 | select ASYMMETRIC_PUBLIC_KEY_SUBTYPE | 1743 | select ASYMMETRIC_PUBLIC_KEY_SUBTYPE |
1743 | select PUBLIC_KEY_ALGO_RSA | 1744 | select PUBLIC_KEY_ALGO_RSA |
1744 | select ASN1 | 1745 | select ASN1 |
1745 | select OID_REGISTRY | 1746 | select OID_REGISTRY |
1746 | select X509_CERTIFICATE_PARSER | 1747 | select X509_CERTIFICATE_PARSER |
1747 | help | 1748 | help |
1748 | Check modules for valid signatures upon load: the signature | 1749 | Check modules for valid signatures upon load: the signature |
1749 | is simply appended to the module. For more information see | 1750 | is simply appended to the module. For more information see |
1750 | Documentation/module-signing.txt. | 1751 | Documentation/module-signing.txt. |
1751 | 1752 | ||
1752 | !!!WARNING!!! If you enable this option, you MUST make sure that the | 1753 | !!!WARNING!!! If you enable this option, you MUST make sure that the |
1753 | module DOES NOT get stripped after being signed. This includes the | 1754 | module DOES NOT get stripped after being signed. This includes the |
1754 | debuginfo strip done by some packagers (such as rpmbuild) and | 1755 | debuginfo strip done by some packagers (such as rpmbuild) and |
1755 | inclusion into an initramfs that wants the module size reduced. | 1756 | inclusion into an initramfs that wants the module size reduced. |
1756 | 1757 | ||
1757 | config MODULE_SIG_FORCE | 1758 | config MODULE_SIG_FORCE |
1758 | bool "Require modules to be validly signed" | 1759 | bool "Require modules to be validly signed" |
1759 | depends on MODULE_SIG | 1760 | depends on MODULE_SIG |
1760 | help | 1761 | help |
1761 | Reject unsigned modules or signed modules for which we don't have a | 1762 | Reject unsigned modules or signed modules for which we don't have a |
1762 | key. Without this, such modules will simply taint the kernel. | 1763 | key. Without this, such modules will simply taint the kernel. |
1763 | 1764 | ||
1764 | config MODULE_SIG_ALL | 1765 | config MODULE_SIG_ALL |
1765 | bool "Automatically sign all modules" | 1766 | bool "Automatically sign all modules" |
1766 | default y | 1767 | default y |
1767 | depends on MODULE_SIG | 1768 | depends on MODULE_SIG |
1768 | help | 1769 | help |
1769 | Sign all modules during make modules_install. Without this option, | 1770 | Sign all modules during make modules_install. Without this option, |
1770 | modules must be signed manually, using the scripts/sign-file tool. | 1771 | modules must be signed manually, using the scripts/sign-file tool. |
1771 | 1772 | ||
1772 | comment "Do not forget to sign required modules with scripts/sign-file" | 1773 | comment "Do not forget to sign required modules with scripts/sign-file" |
1773 | depends on MODULE_SIG_FORCE && !MODULE_SIG_ALL | 1774 | depends on MODULE_SIG_FORCE && !MODULE_SIG_ALL |
1774 | 1775 | ||
1775 | choice | 1776 | choice |
1776 | prompt "Which hash algorithm should modules be signed with?" | 1777 | prompt "Which hash algorithm should modules be signed with?" |
1777 | depends on MODULE_SIG | 1778 | depends on MODULE_SIG |
1778 | help | 1779 | help |
1779 | This determines which sort of hashing algorithm will be used during | 1780 | This determines which sort of hashing algorithm will be used during |
1780 | signature generation. This algorithm _must_ be built into the kernel | 1781 | signature generation. This algorithm _must_ be built into the kernel |
1781 | directly so that signature verification can take place. It is not | 1782 | directly so that signature verification can take place. It is not |
1782 | possible to load a signed module containing the algorithm to check | 1783 | possible to load a signed module containing the algorithm to check |
1783 | the signature on that module. | 1784 | the signature on that module. |
1784 | 1785 | ||
1785 | config MODULE_SIG_SHA1 | 1786 | config MODULE_SIG_SHA1 |
1786 | bool "Sign modules with SHA-1" | 1787 | bool "Sign modules with SHA-1" |
1787 | select CRYPTO_SHA1 | 1788 | select CRYPTO_SHA1 |
1788 | 1789 | ||
1789 | config MODULE_SIG_SHA224 | 1790 | config MODULE_SIG_SHA224 |
1790 | bool "Sign modules with SHA-224" | 1791 | bool "Sign modules with SHA-224" |
1791 | select CRYPTO_SHA256 | 1792 | select CRYPTO_SHA256 |
1792 | 1793 | ||
1793 | config MODULE_SIG_SHA256 | 1794 | config MODULE_SIG_SHA256 |
1794 | bool "Sign modules with SHA-256" | 1795 | bool "Sign modules with SHA-256" |
1795 | select CRYPTO_SHA256 | 1796 | select CRYPTO_SHA256 |
1796 | 1797 | ||
1797 | config MODULE_SIG_SHA384 | 1798 | config MODULE_SIG_SHA384 |
1798 | bool "Sign modules with SHA-384" | 1799 | bool "Sign modules with SHA-384" |
1799 | select CRYPTO_SHA512 | 1800 | select CRYPTO_SHA512 |
1800 | 1801 | ||
1801 | config MODULE_SIG_SHA512 | 1802 | config MODULE_SIG_SHA512 |
1802 | bool "Sign modules with SHA-512" | 1803 | bool "Sign modules with SHA-512" |
1803 | select CRYPTO_SHA512 | 1804 | select CRYPTO_SHA512 |
1804 | 1805 | ||
1805 | endchoice | 1806 | endchoice |
1806 | 1807 | ||
1807 | config MODULE_SIG_HASH | 1808 | config MODULE_SIG_HASH |
1808 | string | 1809 | string |
1809 | depends on MODULE_SIG | 1810 | depends on MODULE_SIG |
1810 | default "sha1" if MODULE_SIG_SHA1 | 1811 | default "sha1" if MODULE_SIG_SHA1 |
1811 | default "sha224" if MODULE_SIG_SHA224 | 1812 | default "sha224" if MODULE_SIG_SHA224 |
1812 | default "sha256" if MODULE_SIG_SHA256 | 1813 | default "sha256" if MODULE_SIG_SHA256 |
1813 | default "sha384" if MODULE_SIG_SHA384 | 1814 | default "sha384" if MODULE_SIG_SHA384 |
1814 | default "sha512" if MODULE_SIG_SHA512 | 1815 | default "sha512" if MODULE_SIG_SHA512 |
1815 | 1816 | ||
1816 | endif # MODULES | 1817 | endif # MODULES |
1817 | 1818 | ||
1818 | config INIT_ALL_POSSIBLE | 1819 | config INIT_ALL_POSSIBLE |
1819 | bool | 1820 | bool |
1820 | help | 1821 | help |
1821 | Back when each arch used to define their own cpu_online_mask and | 1822 | Back when each arch used to define their own cpu_online_mask and |
1822 | cpu_possible_mask, some of them chose to initialize cpu_possible_mask | 1823 | cpu_possible_mask, some of them chose to initialize cpu_possible_mask |
1823 | with all 1s, and others with all 0s. When they were centralised, | 1824 | with all 1s, and others with all 0s. When they were centralised, |
1824 | it was better to provide this option than to break all the archs | 1825 | it was better to provide this option than to break all the archs |
1825 | and have several arch maintainers pursuing me down dark alleys. | 1826 | and have several arch maintainers pursuing me down dark alleys. |
1826 | 1827 | ||
1827 | config STOP_MACHINE | 1828 | config STOP_MACHINE |
1828 | bool | 1829 | bool |
1829 | default y | 1830 | default y |
1830 | depends on (SMP && MODULE_UNLOAD) || HOTPLUG_CPU | 1831 | depends on (SMP && MODULE_UNLOAD) || HOTPLUG_CPU |
1831 | help | 1832 | help |
1832 | Need stop_machine() primitive. | 1833 | Need stop_machine() primitive. |
1833 | 1834 | ||
1834 | source "block/Kconfig" | 1835 | source "block/Kconfig" |
1835 | 1836 | ||
1836 | config PREEMPT_NOTIFIERS | 1837 | config PREEMPT_NOTIFIERS |
1837 | bool | 1838 | bool |
1838 | 1839 | ||
1839 | config PADATA | 1840 | config PADATA |
1840 | depends on SMP | 1841 | depends on SMP |
1841 | bool | 1842 | bool |
1842 | 1843 | ||
1843 | # Can be selected by architectures with broken toolchains | 1844 | # Can be selected by architectures with broken toolchains |
1844 | # that get confused by correct const<->read_only section | 1845 | # that get confused by correct const<->read_only section |
1845 | # mappings | 1846 | # mappings |
1846 | config BROKEN_RODATA | 1847 | config BROKEN_RODATA |
1847 | bool | 1848 | bool |
1848 | 1849 | ||
1849 | config ASN1 | 1850 | config ASN1 |
1850 | tristate | 1851 | tristate |
1851 | help | 1852 | help |
1852 | Build a simple ASN.1 grammar compiler that produces a bytecode output | 1853 | Build a simple ASN.1 grammar compiler that produces a bytecode output |
1853 | that can be interpreted by the ASN.1 stream decoder and used to | 1854 | that can be interpreted by the ASN.1 stream decoder and used to |
1854 | inform it as to what tags are to be expected in a stream and what | 1855 | inform it as to what tags are to be expected in a stream and what |
1855 | functions to call on what tags. | 1856 | functions to call on what tags. |
1856 | 1857 | ||
1857 | source "kernel/Kconfig.locks" | 1858 | source "kernel/Kconfig.locks" |
1858 | 1859 |