Commit a327ca2c2674c5a9a0073421df19bfc362698136
Committed by
Rusty Russell
1 parent
7d3b56ba37
Exists in
master
and in
39 other branches
remove CONFIG_KMOD
Now that nothing depends on it any more, remove CONFIG_KMOD. Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Showing 1 changed file with 0 additions and 6 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 | menu "General setup" | 19 | menu "General setup" |
20 | 20 | ||
21 | config EXPERIMENTAL | 21 | config EXPERIMENTAL |
22 | bool "Prompt for development and/or incomplete code/drivers" | 22 | bool "Prompt for development and/or incomplete code/drivers" |
23 | ---help--- | 23 | ---help--- |
24 | Some of the various things that Linux supports (such as network | 24 | Some of the various things that Linux supports (such as network |
25 | drivers, file systems, network protocols, etc.) can be in a state | 25 | drivers, file systems, network protocols, etc.) can be in a state |
26 | of development where the functionality, stability, or the level of | 26 | of development where the functionality, stability, or the level of |
27 | testing is not yet high enough for general use. This is usually | 27 | testing is not yet high enough for general use. This is usually |
28 | known as the "alpha-test" phase among developers. If a feature is | 28 | known as the "alpha-test" phase among developers. If a feature is |
29 | currently in alpha-test, then the developers usually discourage | 29 | currently in alpha-test, then the developers usually discourage |
30 | uninformed widespread use of this feature by the general public to | 30 | uninformed widespread use of this feature by the general public to |
31 | avoid "Why doesn't this work?" type mail messages. However, active | 31 | avoid "Why doesn't this work?" type mail messages. However, active |
32 | testing and use of these systems is welcomed. Just be aware that it | 32 | testing and use of these systems is welcomed. Just be aware that it |
33 | may not meet the normal level of reliability or it may fail to work | 33 | may not meet the normal level of reliability or it may fail to work |
34 | in some special cases. Detailed bug reports from people familiar | 34 | in some special cases. Detailed bug reports from people familiar |
35 | with the kernel internals are usually welcomed by the developers | 35 | with the kernel internals are usually welcomed by the developers |
36 | (before submitting bug reports, please read the documents | 36 | (before submitting bug reports, please read the documents |
37 | <file:README>, <file:MAINTAINERS>, <file:REPORTING-BUGS>, | 37 | <file:README>, <file:MAINTAINERS>, <file:REPORTING-BUGS>, |
38 | <file:Documentation/BUG-HUNTING>, and | 38 | <file:Documentation/BUG-HUNTING>, and |
39 | <file:Documentation/oops-tracing.txt> in the kernel source). | 39 | <file:Documentation/oops-tracing.txt> in the kernel source). |
40 | 40 | ||
41 | This option will also make obsoleted drivers available. These are | 41 | This option will also make obsoleted drivers available. These are |
42 | drivers that have been replaced by something else, and/or are | 42 | drivers that have been replaced by something else, and/or are |
43 | scheduled to be removed in a future kernel release. | 43 | scheduled to be removed in a future kernel release. |
44 | 44 | ||
45 | Unless you intend to help test and develop a feature or driver that | 45 | Unless you intend to help test and develop a feature or driver that |
46 | falls into this category, or you have a situation that requires | 46 | falls into this category, or you have a situation that requires |
47 | using these features, you should probably say N here, which will | 47 | using these features, you should probably say N here, which will |
48 | cause the configurator to present you with fewer choices. If | 48 | cause the configurator to present you with fewer choices. If |
49 | you say Y here, you will be offered the choice of using features or | 49 | you say Y here, you will be offered the choice of using features or |
50 | drivers that are currently considered to be in the alpha-test phase. | 50 | drivers that are currently considered to be in the alpha-test phase. |
51 | 51 | ||
52 | config BROKEN | 52 | config BROKEN |
53 | bool | 53 | bool |
54 | 54 | ||
55 | config BROKEN_ON_SMP | 55 | config BROKEN_ON_SMP |
56 | bool | 56 | bool |
57 | depends on BROKEN || !SMP | 57 | depends on BROKEN || !SMP |
58 | default y | 58 | default y |
59 | 59 | ||
60 | config LOCK_KERNEL | 60 | config LOCK_KERNEL |
61 | bool | 61 | bool |
62 | depends on SMP || PREEMPT | 62 | depends on SMP || PREEMPT |
63 | default y | 63 | default y |
64 | 64 | ||
65 | config INIT_ENV_ARG_LIMIT | 65 | config INIT_ENV_ARG_LIMIT |
66 | int | 66 | int |
67 | default 32 if !UML | 67 | default 32 if !UML |
68 | default 128 if UML | 68 | default 128 if UML |
69 | help | 69 | help |
70 | Maximum of each of the number of arguments and environment | 70 | Maximum of each of the number of arguments and environment |
71 | variables passed to init from the kernel command line. | 71 | variables passed to init from the kernel command line. |
72 | 72 | ||
73 | 73 | ||
74 | config LOCALVERSION | 74 | config LOCALVERSION |
75 | string "Local version - append to kernel release" | 75 | string "Local version - append to kernel release" |
76 | help | 76 | help |
77 | Append an extra string to the end of your kernel version. | 77 | Append an extra string to the end of your kernel version. |
78 | This will show up when you type uname, for example. | 78 | This will show up when you type uname, for example. |
79 | The string you set here will be appended after the contents of | 79 | The string you set here will be appended after the contents of |
80 | any files with a filename matching localversion* in your | 80 | any files with a filename matching localversion* in your |
81 | object and source tree, in that order. Your total string can | 81 | object and source tree, in that order. Your total string can |
82 | be a maximum of 64 characters. | 82 | be a maximum of 64 characters. |
83 | 83 | ||
84 | config LOCALVERSION_AUTO | 84 | config LOCALVERSION_AUTO |
85 | bool "Automatically append version information to the version string" | 85 | bool "Automatically append version information to the version string" |
86 | default y | 86 | default y |
87 | help | 87 | help |
88 | This will try to automatically determine if the current tree is a | 88 | This will try to automatically determine if the current tree is a |
89 | release tree by looking for git tags that belong to the current | 89 | release tree by looking for git tags that belong to the current |
90 | top of tree revision. | 90 | top of tree revision. |
91 | 91 | ||
92 | A string of the format -gxxxxxxxx will be added to the localversion | 92 | A string of the format -gxxxxxxxx will be added to the localversion |
93 | if a git-based tree is found. The string generated by this will be | 93 | if a git-based tree is found. The string generated by this will be |
94 | appended after any matching localversion* files, and after the value | 94 | appended after any matching localversion* files, and after the value |
95 | set in CONFIG_LOCALVERSION. | 95 | set in CONFIG_LOCALVERSION. |
96 | 96 | ||
97 | (The actual string used here is the first eight characters produced | 97 | (The actual string used here is the first eight characters produced |
98 | by running the command: | 98 | by running the command: |
99 | 99 | ||
100 | $ git rev-parse --verify HEAD | 100 | $ git rev-parse --verify HEAD |
101 | 101 | ||
102 | which is done within the script "scripts/setlocalversion".) | 102 | which is done within the script "scripts/setlocalversion".) |
103 | 103 | ||
104 | config SWAP | 104 | config SWAP |
105 | bool "Support for paging of anonymous memory (swap)" | 105 | bool "Support for paging of anonymous memory (swap)" |
106 | depends on MMU && BLOCK | 106 | depends on MMU && BLOCK |
107 | default y | 107 | default y |
108 | help | 108 | help |
109 | This option allows you to choose whether you want to have support | 109 | This option allows you to choose whether you want to have support |
110 | for so called swap devices or swap files in your kernel that are | 110 | for so called swap devices or swap files in your kernel that are |
111 | used to provide more virtual memory than the actual RAM present | 111 | used to provide more virtual memory than the actual RAM present |
112 | in your computer. If unsure say Y. | 112 | in your computer. If unsure say Y. |
113 | 113 | ||
114 | config SYSVIPC | 114 | config SYSVIPC |
115 | bool "System V IPC" | 115 | bool "System V IPC" |
116 | ---help--- | 116 | ---help--- |
117 | Inter Process Communication is a suite of library functions and | 117 | Inter Process Communication is a suite of library functions and |
118 | system calls which let processes (running programs) synchronize and | 118 | system calls which let processes (running programs) synchronize and |
119 | exchange information. It is generally considered to be a good thing, | 119 | exchange information. It is generally considered to be a good thing, |
120 | and some programs won't run unless you say Y here. In particular, if | 120 | and some programs won't run unless you say Y here. In particular, if |
121 | you want to run the DOS emulator dosemu under Linux (read the | 121 | you want to run the DOS emulator dosemu under Linux (read the |
122 | DOSEMU-HOWTO, available from <http://www.tldp.org/docs.html#howto>), | 122 | DOSEMU-HOWTO, available from <http://www.tldp.org/docs.html#howto>), |
123 | you'll need to say Y here. | 123 | you'll need to say Y here. |
124 | 124 | ||
125 | You can find documentation about IPC with "info ipc" and also in | 125 | You can find documentation about IPC with "info ipc" and also in |
126 | section 6.4 of the Linux Programmer's Guide, available from | 126 | section 6.4 of the Linux Programmer's Guide, available from |
127 | <http://www.tldp.org/guides.html>. | 127 | <http://www.tldp.org/guides.html>. |
128 | 128 | ||
129 | config SYSVIPC_SYSCTL | 129 | config SYSVIPC_SYSCTL |
130 | bool | 130 | bool |
131 | depends on SYSVIPC | 131 | depends on SYSVIPC |
132 | depends on SYSCTL | 132 | depends on SYSCTL |
133 | default y | 133 | default y |
134 | 134 | ||
135 | config POSIX_MQUEUE | 135 | config POSIX_MQUEUE |
136 | bool "POSIX Message Queues" | 136 | bool "POSIX Message Queues" |
137 | depends on NET && EXPERIMENTAL | 137 | depends on NET && EXPERIMENTAL |
138 | ---help--- | 138 | ---help--- |
139 | POSIX variant of message queues is a part of IPC. In POSIX message | 139 | POSIX variant of message queues is a part of IPC. In POSIX message |
140 | queues every message has a priority which decides about succession | 140 | queues every message has a priority which decides about succession |
141 | of receiving it by a process. If you want to compile and run | 141 | of receiving it by a process. If you want to compile and run |
142 | programs written e.g. for Solaris with use of its POSIX message | 142 | programs written e.g. for Solaris with use of its POSIX message |
143 | queues (functions mq_*) say Y here. | 143 | queues (functions mq_*) say Y here. |
144 | 144 | ||
145 | POSIX message queues are visible as a filesystem called 'mqueue' | 145 | POSIX message queues are visible as a filesystem called 'mqueue' |
146 | and can be mounted somewhere if you want to do filesystem | 146 | and can be mounted somewhere if you want to do filesystem |
147 | operations on message queues. | 147 | operations on message queues. |
148 | 148 | ||
149 | If unsure, say Y. | 149 | If unsure, say Y. |
150 | 150 | ||
151 | config BSD_PROCESS_ACCT | 151 | config BSD_PROCESS_ACCT |
152 | bool "BSD Process Accounting" | 152 | bool "BSD Process Accounting" |
153 | help | 153 | help |
154 | If you say Y here, a user level program will be able to instruct the | 154 | If you say Y here, a user level program will be able to instruct the |
155 | kernel (via a special system call) to write process accounting | 155 | kernel (via a special system call) to write process accounting |
156 | information to a file: whenever a process exits, information about | 156 | information to a file: whenever a process exits, information about |
157 | that process will be appended to the file by the kernel. The | 157 | that process will be appended to the file by the kernel. The |
158 | information includes things such as creation time, owning user, | 158 | information includes things such as creation time, owning user, |
159 | command name, memory usage, controlling terminal etc. (the complete | 159 | command name, memory usage, controlling terminal etc. (the complete |
160 | list is in the struct acct in <file:include/linux/acct.h>). It is | 160 | list is in the struct acct in <file:include/linux/acct.h>). It is |
161 | up to the user level program to do useful things with this | 161 | up to the user level program to do useful things with this |
162 | information. This is generally a good idea, so say Y. | 162 | information. This is generally a good idea, so say Y. |
163 | 163 | ||
164 | config BSD_PROCESS_ACCT_V3 | 164 | config BSD_PROCESS_ACCT_V3 |
165 | bool "BSD Process Accounting version 3 file format" | 165 | bool "BSD Process Accounting version 3 file format" |
166 | depends on BSD_PROCESS_ACCT | 166 | depends on BSD_PROCESS_ACCT |
167 | default n | 167 | default n |
168 | help | 168 | help |
169 | If you say Y here, the process accounting information is written | 169 | If you say Y here, the process accounting information is written |
170 | in a new file format that also logs the process IDs of each | 170 | in a new file format that also logs the process IDs of each |
171 | process and it's parent. Note that this file format is incompatible | 171 | process and it's parent. Note that this file format is incompatible |
172 | with previous v0/v1/v2 file formats, so you will need updated tools | 172 | with previous v0/v1/v2 file formats, so you will need updated tools |
173 | for processing it. A preliminary version of these tools is available | 173 | for processing it. A preliminary version of these tools is available |
174 | at <http://www.gnu.org/software/acct/>. | 174 | at <http://www.gnu.org/software/acct/>. |
175 | 175 | ||
176 | config TASKSTATS | 176 | config TASKSTATS |
177 | bool "Export task/process statistics through netlink (EXPERIMENTAL)" | 177 | bool "Export task/process statistics through netlink (EXPERIMENTAL)" |
178 | depends on NET | 178 | depends on NET |
179 | default n | 179 | default n |
180 | help | 180 | help |
181 | Export selected statistics for tasks/processes through the | 181 | Export selected statistics for tasks/processes through the |
182 | generic netlink interface. Unlike BSD process accounting, the | 182 | generic netlink interface. Unlike BSD process accounting, the |
183 | statistics are available during the lifetime of tasks/processes as | 183 | statistics are available during the lifetime of tasks/processes as |
184 | responses to commands. Like BSD accounting, they are sent to user | 184 | responses to commands. Like BSD accounting, they are sent to user |
185 | space on task exit. | 185 | space on task exit. |
186 | 186 | ||
187 | Say N if unsure. | 187 | Say N if unsure. |
188 | 188 | ||
189 | config TASK_DELAY_ACCT | 189 | config TASK_DELAY_ACCT |
190 | bool "Enable per-task delay accounting (EXPERIMENTAL)" | 190 | bool "Enable per-task delay accounting (EXPERIMENTAL)" |
191 | depends on TASKSTATS | 191 | depends on TASKSTATS |
192 | help | 192 | help |
193 | Collect information on time spent by a task waiting for system | 193 | Collect information on time spent by a task waiting for system |
194 | resources like cpu, synchronous block I/O completion and swapping | 194 | resources like cpu, synchronous block I/O completion and swapping |
195 | in pages. Such statistics can help in setting a task's priorities | 195 | in pages. Such statistics can help in setting a task's priorities |
196 | relative to other tasks for cpu, io, rss limits etc. | 196 | relative to other tasks for cpu, io, rss limits etc. |
197 | 197 | ||
198 | Say N if unsure. | 198 | Say N if unsure. |
199 | 199 | ||
200 | config TASK_XACCT | 200 | config TASK_XACCT |
201 | bool "Enable extended accounting over taskstats (EXPERIMENTAL)" | 201 | bool "Enable extended accounting over taskstats (EXPERIMENTAL)" |
202 | depends on TASKSTATS | 202 | depends on TASKSTATS |
203 | help | 203 | help |
204 | Collect extended task accounting data and send the data | 204 | Collect extended task accounting data and send the data |
205 | to userland for processing over the taskstats interface. | 205 | to userland for processing over the taskstats interface. |
206 | 206 | ||
207 | Say N if unsure. | 207 | Say N if unsure. |
208 | 208 | ||
209 | config TASK_IO_ACCOUNTING | 209 | config TASK_IO_ACCOUNTING |
210 | bool "Enable per-task storage I/O accounting (EXPERIMENTAL)" | 210 | bool "Enable per-task storage I/O accounting (EXPERIMENTAL)" |
211 | depends on TASK_XACCT | 211 | depends on TASK_XACCT |
212 | help | 212 | help |
213 | Collect information on the number of bytes of storage I/O which this | 213 | Collect information on the number of bytes of storage I/O which this |
214 | task has caused. | 214 | task has caused. |
215 | 215 | ||
216 | Say N if unsure. | 216 | Say N if unsure. |
217 | 217 | ||
218 | config AUDIT | 218 | config AUDIT |
219 | bool "Auditing support" | 219 | bool "Auditing support" |
220 | depends on NET | 220 | depends on NET |
221 | help | 221 | help |
222 | Enable auditing infrastructure that can be used with another | 222 | Enable auditing infrastructure that can be used with another |
223 | kernel subsystem, such as SELinux (which requires this for | 223 | kernel subsystem, such as SELinux (which requires this for |
224 | logging of avc messages output). Does not do system-call | 224 | logging of avc messages output). Does not do system-call |
225 | auditing without CONFIG_AUDITSYSCALL. | 225 | auditing without CONFIG_AUDITSYSCALL. |
226 | 226 | ||
227 | config AUDITSYSCALL | 227 | config AUDITSYSCALL |
228 | bool "Enable system-call auditing support" | 228 | bool "Enable system-call auditing support" |
229 | depends on AUDIT && (X86 || PPC || PPC64 || S390 || IA64 || UML || SPARC64|| SUPERH) | 229 | depends on AUDIT && (X86 || PPC || PPC64 || S390 || IA64 || UML || SPARC64|| SUPERH) |
230 | default y if SECURITY_SELINUX | 230 | default y if SECURITY_SELINUX |
231 | help | 231 | help |
232 | Enable low-overhead system-call auditing infrastructure that | 232 | Enable low-overhead system-call auditing infrastructure that |
233 | can be used independently or with another kernel subsystem, | 233 | can be used independently or with another kernel subsystem, |
234 | such as SELinux. To use audit's filesystem watch feature, please | 234 | such as SELinux. To use audit's filesystem watch feature, please |
235 | ensure that INOTIFY is configured. | 235 | ensure that INOTIFY is configured. |
236 | 236 | ||
237 | config AUDIT_TREE | 237 | config AUDIT_TREE |
238 | def_bool y | 238 | def_bool y |
239 | depends on AUDITSYSCALL && INOTIFY | 239 | depends on AUDITSYSCALL && INOTIFY |
240 | 240 | ||
241 | config IKCONFIG | 241 | config IKCONFIG |
242 | tristate "Kernel .config support" | 242 | tristate "Kernel .config support" |
243 | ---help--- | 243 | ---help--- |
244 | This option enables the complete Linux kernel ".config" file | 244 | This option enables the complete Linux kernel ".config" file |
245 | contents to be saved in the kernel. It provides documentation | 245 | contents to be saved in the kernel. It provides documentation |
246 | of which kernel options are used in a running kernel or in an | 246 | of which kernel options are used in a running kernel or in an |
247 | on-disk kernel. This information can be extracted from the kernel | 247 | on-disk kernel. This information can be extracted from the kernel |
248 | image file with the script scripts/extract-ikconfig and used as | 248 | image file with the script scripts/extract-ikconfig and used as |
249 | input to rebuild the current kernel or to build another kernel. | 249 | input to rebuild the current kernel or to build another kernel. |
250 | It can also be extracted from a running kernel by reading | 250 | It can also be extracted from a running kernel by reading |
251 | /proc/config.gz if enabled (below). | 251 | /proc/config.gz if enabled (below). |
252 | 252 | ||
253 | config IKCONFIG_PROC | 253 | config IKCONFIG_PROC |
254 | bool "Enable access to .config through /proc/config.gz" | 254 | bool "Enable access to .config through /proc/config.gz" |
255 | depends on IKCONFIG && PROC_FS | 255 | depends on IKCONFIG && PROC_FS |
256 | ---help--- | 256 | ---help--- |
257 | This option enables access to the kernel configuration file | 257 | This option enables access to the kernel configuration file |
258 | through /proc/config.gz. | 258 | through /proc/config.gz. |
259 | 259 | ||
260 | config LOG_BUF_SHIFT | 260 | config LOG_BUF_SHIFT |
261 | int "Kernel log buffer size (16 => 64KB, 17 => 128KB)" | 261 | int "Kernel log buffer size (16 => 64KB, 17 => 128KB)" |
262 | range 12 21 | 262 | range 12 21 |
263 | default 17 | 263 | default 17 |
264 | help | 264 | help |
265 | Select kernel log buffer size as a power of 2. | 265 | Select kernel log buffer size as a power of 2. |
266 | Examples: | 266 | Examples: |
267 | 17 => 128 KB | 267 | 17 => 128 KB |
268 | 16 => 64 KB | 268 | 16 => 64 KB |
269 | 15 => 32 KB | 269 | 15 => 32 KB |
270 | 14 => 16 KB | 270 | 14 => 16 KB |
271 | 13 => 8 KB | 271 | 13 => 8 KB |
272 | 12 => 4 KB | 272 | 12 => 4 KB |
273 | 273 | ||
274 | config CGROUPS | 274 | config CGROUPS |
275 | bool "Control Group support" | 275 | bool "Control Group support" |
276 | help | 276 | help |
277 | This option will let you use process cgroup subsystems | 277 | This option will let you use process cgroup subsystems |
278 | such as Cpusets | 278 | such as Cpusets |
279 | 279 | ||
280 | Say N if unsure. | 280 | Say N if unsure. |
281 | 281 | ||
282 | config CGROUP_DEBUG | 282 | config CGROUP_DEBUG |
283 | bool "Example debug cgroup subsystem" | 283 | bool "Example debug cgroup subsystem" |
284 | depends on CGROUPS | 284 | depends on CGROUPS |
285 | default n | 285 | default n |
286 | help | 286 | help |
287 | This option enables a simple cgroup subsystem that | 287 | This option enables a simple cgroup subsystem that |
288 | exports useful debugging information about the cgroups | 288 | exports useful debugging information about the cgroups |
289 | framework | 289 | framework |
290 | 290 | ||
291 | Say N if unsure | 291 | Say N if unsure |
292 | 292 | ||
293 | config CGROUP_NS | 293 | config CGROUP_NS |
294 | bool "Namespace cgroup subsystem" | 294 | bool "Namespace cgroup subsystem" |
295 | depends on CGROUPS | 295 | depends on CGROUPS |
296 | help | 296 | help |
297 | Provides a simple namespace cgroup subsystem to | 297 | Provides a simple namespace cgroup subsystem to |
298 | provide hierarchical naming of sets of namespaces, | 298 | provide hierarchical naming of sets of namespaces, |
299 | for instance virtual servers and checkpoint/restart | 299 | for instance virtual servers and checkpoint/restart |
300 | jobs. | 300 | jobs. |
301 | 301 | ||
302 | config CGROUP_FREEZER | 302 | config CGROUP_FREEZER |
303 | bool "control group freezer subsystem" | 303 | bool "control group freezer subsystem" |
304 | depends on CGROUPS | 304 | depends on CGROUPS |
305 | help | 305 | help |
306 | Provides a way to freeze and unfreeze all tasks in a | 306 | Provides a way to freeze and unfreeze all tasks in a |
307 | cgroup. | 307 | cgroup. |
308 | 308 | ||
309 | config CGROUP_DEVICE | 309 | config CGROUP_DEVICE |
310 | bool "Device controller for cgroups" | 310 | bool "Device controller for cgroups" |
311 | depends on CGROUPS && EXPERIMENTAL | 311 | depends on CGROUPS && EXPERIMENTAL |
312 | help | 312 | help |
313 | Provides a cgroup implementing whitelists for devices which | 313 | Provides a cgroup implementing whitelists for devices which |
314 | a process in the cgroup can mknod or open. | 314 | a process in the cgroup can mknod or open. |
315 | 315 | ||
316 | config CPUSETS | 316 | config CPUSETS |
317 | bool "Cpuset support" | 317 | bool "Cpuset support" |
318 | depends on SMP && CGROUPS | 318 | depends on SMP && CGROUPS |
319 | help | 319 | help |
320 | This option will let you create and manage CPUSETs which | 320 | This option will let you create and manage CPUSETs which |
321 | allow dynamically partitioning a system into sets of CPUs and | 321 | allow dynamically partitioning a system into sets of CPUs and |
322 | Memory Nodes and assigning tasks to run only within those sets. | 322 | Memory Nodes and assigning tasks to run only within those sets. |
323 | This is primarily useful on large SMP or NUMA systems. | 323 | This is primarily useful on large SMP or NUMA systems. |
324 | 324 | ||
325 | Say N if unsure. | 325 | Say N if unsure. |
326 | 326 | ||
327 | # | 327 | # |
328 | # Architectures with an unreliable sched_clock() should select this: | 328 | # Architectures with an unreliable sched_clock() should select this: |
329 | # | 329 | # |
330 | config HAVE_UNSTABLE_SCHED_CLOCK | 330 | config HAVE_UNSTABLE_SCHED_CLOCK |
331 | bool | 331 | bool |
332 | 332 | ||
333 | config GROUP_SCHED | 333 | config GROUP_SCHED |
334 | bool "Group CPU scheduler" | 334 | bool "Group CPU scheduler" |
335 | depends on EXPERIMENTAL | 335 | depends on EXPERIMENTAL |
336 | default n | 336 | default n |
337 | help | 337 | help |
338 | This feature lets CPU scheduler recognize task groups and control CPU | 338 | This feature lets CPU scheduler recognize task groups and control CPU |
339 | bandwidth allocation to such task groups. | 339 | bandwidth allocation to such task groups. |
340 | 340 | ||
341 | config FAIR_GROUP_SCHED | 341 | config FAIR_GROUP_SCHED |
342 | bool "Group scheduling for SCHED_OTHER" | 342 | bool "Group scheduling for SCHED_OTHER" |
343 | depends on GROUP_SCHED | 343 | depends on GROUP_SCHED |
344 | default GROUP_SCHED | 344 | default GROUP_SCHED |
345 | 345 | ||
346 | config RT_GROUP_SCHED | 346 | config RT_GROUP_SCHED |
347 | bool "Group scheduling for SCHED_RR/FIFO" | 347 | bool "Group scheduling for SCHED_RR/FIFO" |
348 | depends on EXPERIMENTAL | 348 | depends on EXPERIMENTAL |
349 | depends on GROUP_SCHED | 349 | depends on GROUP_SCHED |
350 | default n | 350 | default n |
351 | help | 351 | help |
352 | This feature lets you explicitly allocate real CPU bandwidth | 352 | This feature lets you explicitly allocate real CPU bandwidth |
353 | to users or control groups (depending on the "Basis for grouping tasks" | 353 | to users or control groups (depending on the "Basis for grouping tasks" |
354 | setting below. If enabled, it will also make it impossible to | 354 | setting below. If enabled, it will also make it impossible to |
355 | schedule realtime tasks for non-root users until you allocate | 355 | schedule realtime tasks for non-root users until you allocate |
356 | realtime bandwidth for them. | 356 | realtime bandwidth for them. |
357 | See Documentation/scheduler/sched-rt-group.txt for more information. | 357 | See Documentation/scheduler/sched-rt-group.txt for more information. |
358 | 358 | ||
359 | choice | 359 | choice |
360 | depends on GROUP_SCHED | 360 | depends on GROUP_SCHED |
361 | prompt "Basis for grouping tasks" | 361 | prompt "Basis for grouping tasks" |
362 | default USER_SCHED | 362 | default USER_SCHED |
363 | 363 | ||
364 | config USER_SCHED | 364 | config USER_SCHED |
365 | bool "user id" | 365 | bool "user id" |
366 | help | 366 | help |
367 | This option will choose userid as the basis for grouping | 367 | This option will choose userid as the basis for grouping |
368 | tasks, thus providing equal CPU bandwidth to each user. | 368 | tasks, thus providing equal CPU bandwidth to each user. |
369 | 369 | ||
370 | config CGROUP_SCHED | 370 | config CGROUP_SCHED |
371 | bool "Control groups" | 371 | bool "Control groups" |
372 | depends on CGROUPS | 372 | depends on CGROUPS |
373 | help | 373 | help |
374 | This option allows you to create arbitrary task groups | 374 | This option allows you to create arbitrary task groups |
375 | using the "cgroup" pseudo filesystem and control | 375 | using the "cgroup" pseudo filesystem and control |
376 | the cpu bandwidth allocated to each such task group. | 376 | the cpu bandwidth allocated to each such task group. |
377 | Refer to Documentation/cgroups.txt for more information | 377 | Refer to Documentation/cgroups.txt for more information |
378 | on "cgroup" pseudo filesystem. | 378 | on "cgroup" pseudo filesystem. |
379 | 379 | ||
380 | endchoice | 380 | endchoice |
381 | 381 | ||
382 | config CGROUP_CPUACCT | 382 | config CGROUP_CPUACCT |
383 | bool "Simple CPU accounting cgroup subsystem" | 383 | bool "Simple CPU accounting cgroup subsystem" |
384 | depends on CGROUPS | 384 | depends on CGROUPS |
385 | help | 385 | help |
386 | Provides a simple Resource Controller for monitoring the | 386 | Provides a simple Resource Controller for monitoring the |
387 | total CPU consumed by the tasks in a cgroup | 387 | total CPU consumed by the tasks in a cgroup |
388 | 388 | ||
389 | config RESOURCE_COUNTERS | 389 | config RESOURCE_COUNTERS |
390 | bool "Resource counters" | 390 | bool "Resource counters" |
391 | help | 391 | help |
392 | This option enables controller independent resource accounting | 392 | This option enables controller independent resource accounting |
393 | infrastructure that works with cgroups | 393 | infrastructure that works with cgroups |
394 | depends on CGROUPS | 394 | depends on CGROUPS |
395 | 395 | ||
396 | config MM_OWNER | 396 | config MM_OWNER |
397 | bool | 397 | bool |
398 | 398 | ||
399 | config CGROUP_MEM_RES_CTLR | 399 | config CGROUP_MEM_RES_CTLR |
400 | bool "Memory Resource Controller for Control Groups" | 400 | bool "Memory Resource Controller for Control Groups" |
401 | depends on CGROUPS && RESOURCE_COUNTERS | 401 | depends on CGROUPS && RESOURCE_COUNTERS |
402 | select MM_OWNER | 402 | select MM_OWNER |
403 | help | 403 | help |
404 | Provides a memory resource controller that manages both anonymous | 404 | Provides a memory resource controller that manages both anonymous |
405 | memory and page cache. (See Documentation/controllers/memory.txt) | 405 | memory and page cache. (See Documentation/controllers/memory.txt) |
406 | 406 | ||
407 | Note that setting this option increases fixed memory overhead | 407 | Note that setting this option increases fixed memory overhead |
408 | associated with each page of memory in the system. By this, | 408 | associated with each page of memory in the system. By this, |
409 | 20(40)bytes/PAGE_SIZE on 32(64)bit system will be occupied by memory | 409 | 20(40)bytes/PAGE_SIZE on 32(64)bit system will be occupied by memory |
410 | usage tracking struct at boot. Total amount of this is printed out | 410 | usage tracking struct at boot. Total amount of this is printed out |
411 | at boot. | 411 | at boot. |
412 | 412 | ||
413 | Only enable when you're ok with these trade offs and really | 413 | Only enable when you're ok with these trade offs and really |
414 | sure you need the memory resource controller. Even when you enable | 414 | sure you need the memory resource controller. Even when you enable |
415 | this, you can set "cgroup_disable=memory" at your boot option to | 415 | this, you can set "cgroup_disable=memory" at your boot option to |
416 | disable memory resource controller and you can avoid overheads. | 416 | disable memory resource controller and you can avoid overheads. |
417 | (and lose benefits of memory resource contoller) | 417 | (and lose benefits of memory resource contoller) |
418 | 418 | ||
419 | This config option also selects MM_OWNER config option, which | 419 | This config option also selects MM_OWNER config option, which |
420 | could in turn add some fork/exit overhead. | 420 | could in turn add some fork/exit overhead. |
421 | 421 | ||
422 | config SYSFS_DEPRECATED | 422 | config SYSFS_DEPRECATED |
423 | bool | 423 | bool |
424 | 424 | ||
425 | config SYSFS_DEPRECATED_V2 | 425 | config SYSFS_DEPRECATED_V2 |
426 | bool "Create deprecated sysfs files" | 426 | bool "Create deprecated sysfs files" |
427 | depends on SYSFS | 427 | depends on SYSFS |
428 | default y | 428 | default y |
429 | select SYSFS_DEPRECATED | 429 | select SYSFS_DEPRECATED |
430 | help | 430 | help |
431 | This option creates deprecated symlinks such as the | 431 | This option creates deprecated symlinks such as the |
432 | "device"-link, the <subsystem>:<name>-link, and the | 432 | "device"-link, the <subsystem>:<name>-link, and the |
433 | "bus"-link. It may also add deprecated key in the | 433 | "bus"-link. It may also add deprecated key in the |
434 | uevent environment. | 434 | uevent environment. |
435 | None of these features or values should be used today, as | 435 | None of these features or values should be used today, as |
436 | they export driver core implementation details to userspace | 436 | they export driver core implementation details to userspace |
437 | or export properties which can't be kept stable across kernel | 437 | or export properties which can't be kept stable across kernel |
438 | releases. | 438 | releases. |
439 | 439 | ||
440 | If enabled, this option will also move any device structures | 440 | If enabled, this option will also move any device structures |
441 | that belong to a class, back into the /sys/class hierarchy, in | 441 | that belong to a class, back into the /sys/class hierarchy, in |
442 | order to support older versions of udev and some userspace | 442 | order to support older versions of udev and some userspace |
443 | programs. | 443 | programs. |
444 | 444 | ||
445 | If you are using a distro with the most recent userspace | 445 | If you are using a distro with the most recent userspace |
446 | packages, it should be safe to say N here. | 446 | packages, it should be safe to say N here. |
447 | 447 | ||
448 | config PROC_PID_CPUSET | 448 | config PROC_PID_CPUSET |
449 | bool "Include legacy /proc/<pid>/cpuset file" | 449 | bool "Include legacy /proc/<pid>/cpuset file" |
450 | depends on CPUSETS | 450 | depends on CPUSETS |
451 | default y | 451 | default y |
452 | 452 | ||
453 | config RELAY | 453 | config RELAY |
454 | bool "Kernel->user space relay support (formerly relayfs)" | 454 | bool "Kernel->user space relay support (formerly relayfs)" |
455 | help | 455 | help |
456 | This option enables support for relay interface support in | 456 | This option enables support for relay interface support in |
457 | certain file systems (such as debugfs). | 457 | certain file systems (such as debugfs). |
458 | It is designed to provide an efficient mechanism for tools and | 458 | It is designed to provide an efficient mechanism for tools and |
459 | facilities to relay large amounts of data from kernel space to | 459 | facilities to relay large amounts of data from kernel space to |
460 | user space. | 460 | user space. |
461 | 461 | ||
462 | If unsure, say N. | 462 | If unsure, say N. |
463 | 463 | ||
464 | config NAMESPACES | 464 | config NAMESPACES |
465 | bool "Namespaces support" if EMBEDDED | 465 | bool "Namespaces support" if EMBEDDED |
466 | default !EMBEDDED | 466 | default !EMBEDDED |
467 | help | 467 | help |
468 | Provides the way to make tasks work with different objects using | 468 | Provides the way to make tasks work with different objects using |
469 | the same id. For example same IPC id may refer to different objects | 469 | the same id. For example same IPC id may refer to different objects |
470 | or same user id or pid may refer to different tasks when used in | 470 | or same user id or pid may refer to different tasks when used in |
471 | different namespaces. | 471 | different namespaces. |
472 | 472 | ||
473 | config UTS_NS | 473 | config UTS_NS |
474 | bool "UTS namespace" | 474 | bool "UTS namespace" |
475 | depends on NAMESPACES | 475 | depends on NAMESPACES |
476 | help | 476 | help |
477 | In this namespace tasks see different info provided with the | 477 | In this namespace tasks see different info provided with the |
478 | uname() system call | 478 | uname() system call |
479 | 479 | ||
480 | config IPC_NS | 480 | config IPC_NS |
481 | bool "IPC namespace" | 481 | bool "IPC namespace" |
482 | depends on NAMESPACES && SYSVIPC | 482 | depends on NAMESPACES && SYSVIPC |
483 | help | 483 | help |
484 | In this namespace tasks work with IPC ids which correspond to | 484 | In this namespace tasks work with IPC ids which correspond to |
485 | different IPC objects in different namespaces | 485 | different IPC objects in different namespaces |
486 | 486 | ||
487 | config USER_NS | 487 | config USER_NS |
488 | bool "User namespace (EXPERIMENTAL)" | 488 | bool "User namespace (EXPERIMENTAL)" |
489 | depends on NAMESPACES && EXPERIMENTAL | 489 | depends on NAMESPACES && EXPERIMENTAL |
490 | help | 490 | help |
491 | This allows containers, i.e. vservers, to use user namespaces | 491 | This allows containers, i.e. vservers, to use user namespaces |
492 | to provide different user info for different servers. | 492 | to provide different user info for different servers. |
493 | If unsure, say N. | 493 | If unsure, say N. |
494 | 494 | ||
495 | config PID_NS | 495 | config PID_NS |
496 | bool "PID Namespaces (EXPERIMENTAL)" | 496 | bool "PID Namespaces (EXPERIMENTAL)" |
497 | default n | 497 | default n |
498 | depends on NAMESPACES && EXPERIMENTAL | 498 | depends on NAMESPACES && EXPERIMENTAL |
499 | help | 499 | help |
500 | Support process id namespaces. This allows having multiple | 500 | Support process id namespaces. This allows having multiple |
501 | process with the same pid as long as they are in different | 501 | process with the same pid as long as they are in different |
502 | pid namespaces. This is a building block of containers. | 502 | pid namespaces. This is a building block of containers. |
503 | 503 | ||
504 | Unless you want to work with an experimental feature | 504 | Unless you want to work with an experimental feature |
505 | say N here. | 505 | say N here. |
506 | 506 | ||
507 | config BLK_DEV_INITRD | 507 | config BLK_DEV_INITRD |
508 | bool "Initial RAM filesystem and RAM disk (initramfs/initrd) support" | 508 | bool "Initial RAM filesystem and RAM disk (initramfs/initrd) support" |
509 | depends on BROKEN || !FRV | 509 | depends on BROKEN || !FRV |
510 | help | 510 | help |
511 | The initial RAM filesystem is a ramfs which is loaded by the | 511 | The initial RAM filesystem is a ramfs which is loaded by the |
512 | boot loader (loadlin or lilo) and that is mounted as root | 512 | boot loader (loadlin or lilo) and that is mounted as root |
513 | before the normal boot procedure. It is typically used to | 513 | before the normal boot procedure. It is typically used to |
514 | load modules needed to mount the "real" root file system, | 514 | load modules needed to mount the "real" root file system, |
515 | etc. See <file:Documentation/initrd.txt> for details. | 515 | etc. See <file:Documentation/initrd.txt> for details. |
516 | 516 | ||
517 | If RAM disk support (BLK_DEV_RAM) is also included, this | 517 | If RAM disk support (BLK_DEV_RAM) is also included, this |
518 | also enables initial RAM disk (initrd) support and adds | 518 | also enables initial RAM disk (initrd) support and adds |
519 | 15 Kbytes (more on some other architectures) to the kernel size. | 519 | 15 Kbytes (more on some other architectures) to the kernel size. |
520 | 520 | ||
521 | If unsure say Y. | 521 | If unsure say Y. |
522 | 522 | ||
523 | if BLK_DEV_INITRD | 523 | if BLK_DEV_INITRD |
524 | 524 | ||
525 | source "usr/Kconfig" | 525 | source "usr/Kconfig" |
526 | 526 | ||
527 | endif | 527 | endif |
528 | 528 | ||
529 | config CC_OPTIMIZE_FOR_SIZE | 529 | config CC_OPTIMIZE_FOR_SIZE |
530 | bool "Optimize for size" | 530 | bool "Optimize for size" |
531 | default y | 531 | default y |
532 | help | 532 | help |
533 | Enabling this option will pass "-Os" instead of "-O2" to gcc | 533 | Enabling this option will pass "-Os" instead of "-O2" to gcc |
534 | resulting in a smaller kernel. | 534 | resulting in a smaller kernel. |
535 | 535 | ||
536 | If unsure, say Y. | 536 | If unsure, say Y. |
537 | 537 | ||
538 | config SYSCTL | 538 | config SYSCTL |
539 | bool | 539 | bool |
540 | 540 | ||
541 | menuconfig EMBEDDED | 541 | menuconfig EMBEDDED |
542 | bool "Configure standard kernel features (for small systems)" | 542 | bool "Configure standard kernel features (for small systems)" |
543 | help | 543 | help |
544 | This option allows certain base kernel options and settings | 544 | This option allows certain base kernel options and settings |
545 | to be disabled or tweaked. This is for specialized | 545 | to be disabled or tweaked. This is for specialized |
546 | environments which can tolerate a "non-standard" kernel. | 546 | environments which can tolerate a "non-standard" kernel. |
547 | Only use this if you really know what you are doing. | 547 | Only use this if you really know what you are doing. |
548 | 548 | ||
549 | config UID16 | 549 | config UID16 |
550 | bool "Enable 16-bit UID system calls" if EMBEDDED | 550 | bool "Enable 16-bit UID system calls" if EMBEDDED |
551 | depends on ARM || BLACKFIN || CRIS || FRV || H8300 || X86_32 || M68K || (S390 && !64BIT) || SUPERH || SPARC32 || (SPARC64 && COMPAT) || UML || (X86_64 && IA32_EMULATION) | 551 | depends on ARM || BLACKFIN || CRIS || FRV || H8300 || X86_32 || M68K || (S390 && !64BIT) || SUPERH || SPARC32 || (SPARC64 && COMPAT) || UML || (X86_64 && IA32_EMULATION) |
552 | default y | 552 | default y |
553 | help | 553 | help |
554 | This enables the legacy 16-bit UID syscall wrappers. | 554 | This enables the legacy 16-bit UID syscall wrappers. |
555 | 555 | ||
556 | config SYSCTL_SYSCALL | 556 | config SYSCTL_SYSCALL |
557 | bool "Sysctl syscall support" if EMBEDDED | 557 | bool "Sysctl syscall support" if EMBEDDED |
558 | default y | 558 | default y |
559 | select SYSCTL | 559 | select SYSCTL |
560 | ---help--- | 560 | ---help--- |
561 | sys_sysctl uses binary paths that have been found challenging | 561 | sys_sysctl uses binary paths that have been found challenging |
562 | to properly maintain and use. The interface in /proc/sys | 562 | to properly maintain and use. The interface in /proc/sys |
563 | using paths with ascii names is now the primary path to this | 563 | using paths with ascii names is now the primary path to this |
564 | information. | 564 | information. |
565 | 565 | ||
566 | Almost nothing using the binary sysctl interface so if you are | 566 | Almost nothing using the binary sysctl interface so if you are |
567 | trying to save some space it is probably safe to disable this, | 567 | trying to save some space it is probably safe to disable this, |
568 | making your kernel marginally smaller. | 568 | making your kernel marginally smaller. |
569 | 569 | ||
570 | If unsure say Y here. | 570 | If unsure say Y here. |
571 | 571 | ||
572 | config KALLSYMS | 572 | config KALLSYMS |
573 | bool "Load all symbols for debugging/ksymoops" if EMBEDDED | 573 | bool "Load all symbols for debugging/ksymoops" if EMBEDDED |
574 | default y | 574 | default y |
575 | help | 575 | help |
576 | Say Y here to let the kernel print out symbolic crash information and | 576 | Say Y here to let the kernel print out symbolic crash information and |
577 | symbolic stack backtraces. This increases the size of the kernel | 577 | symbolic stack backtraces. This increases the size of the kernel |
578 | somewhat, as all symbols have to be loaded into the kernel image. | 578 | somewhat, as all symbols have to be loaded into the kernel image. |
579 | 579 | ||
580 | config KALLSYMS_ALL | 580 | config KALLSYMS_ALL |
581 | bool "Include all symbols in kallsyms" | 581 | bool "Include all symbols in kallsyms" |
582 | depends on DEBUG_KERNEL && KALLSYMS | 582 | depends on DEBUG_KERNEL && KALLSYMS |
583 | help | 583 | help |
584 | Normally kallsyms only contains the symbols of functions, for nicer | 584 | Normally kallsyms only contains the symbols of functions, for nicer |
585 | OOPS messages. Some debuggers can use kallsyms for other | 585 | OOPS messages. Some debuggers can use kallsyms for other |
586 | symbols too: say Y here to include all symbols, if you need them | 586 | symbols too: say Y here to include all symbols, if you need them |
587 | and you don't care about adding 300k to the size of your kernel. | 587 | and you don't care about adding 300k to the size of your kernel. |
588 | 588 | ||
589 | Say N. | 589 | Say N. |
590 | 590 | ||
591 | config KALLSYMS_STRIP_GENERATED | 591 | config KALLSYMS_STRIP_GENERATED |
592 | bool "Strip machine generated symbols from kallsyms" | 592 | bool "Strip machine generated symbols from kallsyms" |
593 | depends on KALLSYMS_ALL | 593 | depends on KALLSYMS_ALL |
594 | default y | 594 | default y |
595 | help | 595 | help |
596 | Say N if you want kallsyms to retain even machine generated symbols. | 596 | Say N if you want kallsyms to retain even machine generated symbols. |
597 | 597 | ||
598 | config KALLSYMS_EXTRA_PASS | 598 | config KALLSYMS_EXTRA_PASS |
599 | bool "Do an extra kallsyms pass" | 599 | bool "Do an extra kallsyms pass" |
600 | depends on KALLSYMS | 600 | depends on KALLSYMS |
601 | help | 601 | help |
602 | If kallsyms is not working correctly, the build will fail with | 602 | If kallsyms is not working correctly, the build will fail with |
603 | inconsistent kallsyms data. If that occurs, log a bug report and | 603 | inconsistent kallsyms data. If that occurs, log a bug report and |
604 | turn on KALLSYMS_EXTRA_PASS which should result in a stable build. | 604 | turn on KALLSYMS_EXTRA_PASS which should result in a stable build. |
605 | Always say N here unless you find a bug in kallsyms, which must be | 605 | Always say N here unless you find a bug in kallsyms, which must be |
606 | reported. KALLSYMS_EXTRA_PASS is only a temporary workaround while | 606 | reported. KALLSYMS_EXTRA_PASS is only a temporary workaround while |
607 | you wait for kallsyms to be fixed. | 607 | you wait for kallsyms to be fixed. |
608 | 608 | ||
609 | 609 | ||
610 | config HOTPLUG | 610 | config HOTPLUG |
611 | bool "Support for hot-pluggable devices" if EMBEDDED | 611 | bool "Support for hot-pluggable devices" if EMBEDDED |
612 | default y | 612 | default y |
613 | help | 613 | help |
614 | This option is provided for the case where no hotplug or uevent | 614 | This option is provided for the case where no hotplug or uevent |
615 | capabilities is wanted by the kernel. You should only consider | 615 | capabilities is wanted by the kernel. You should only consider |
616 | disabling this option for embedded systems that do not use modules, a | 616 | disabling this option for embedded systems that do not use modules, a |
617 | dynamic /dev tree, or dynamic device discovery. Just say Y. | 617 | dynamic /dev tree, or dynamic device discovery. Just say Y. |
618 | 618 | ||
619 | config PRINTK | 619 | config PRINTK |
620 | default y | 620 | default y |
621 | bool "Enable support for printk" if EMBEDDED | 621 | bool "Enable support for printk" if EMBEDDED |
622 | help | 622 | help |
623 | This option enables normal printk support. Removing it | 623 | This option enables normal printk support. Removing it |
624 | eliminates most of the message strings from the kernel image | 624 | eliminates most of the message strings from the kernel image |
625 | and makes the kernel more or less silent. As this makes it | 625 | and makes the kernel more or less silent. As this makes it |
626 | very difficult to diagnose system problems, saying N here is | 626 | very difficult to diagnose system problems, saying N here is |
627 | strongly discouraged. | 627 | strongly discouraged. |
628 | 628 | ||
629 | config BUG | 629 | config BUG |
630 | bool "BUG() support" if EMBEDDED | 630 | bool "BUG() support" if EMBEDDED |
631 | default y | 631 | default y |
632 | help | 632 | help |
633 | Disabling this option eliminates support for BUG and WARN, reducing | 633 | Disabling this option eliminates support for BUG and WARN, reducing |
634 | the size of your kernel image and potentially quietly ignoring | 634 | the size of your kernel image and potentially quietly ignoring |
635 | numerous fatal conditions. You should only consider disabling this | 635 | numerous fatal conditions. You should only consider disabling this |
636 | option for embedded systems with no facilities for reporting errors. | 636 | option for embedded systems with no facilities for reporting errors. |
637 | Just say Y. | 637 | Just say Y. |
638 | 638 | ||
639 | config ELF_CORE | 639 | config ELF_CORE |
640 | default y | 640 | default y |
641 | bool "Enable ELF core dumps" if EMBEDDED | 641 | bool "Enable ELF core dumps" if EMBEDDED |
642 | help | 642 | help |
643 | Enable support for generating core dumps. Disabling saves about 4k. | 643 | Enable support for generating core dumps. Disabling saves about 4k. |
644 | 644 | ||
645 | config PCSPKR_PLATFORM | 645 | config PCSPKR_PLATFORM |
646 | bool "Enable PC-Speaker support" if EMBEDDED | 646 | bool "Enable PC-Speaker support" if EMBEDDED |
647 | depends on ALPHA || X86 || MIPS || PPC_PREP || PPC_CHRP || PPC_PSERIES | 647 | depends on ALPHA || X86 || MIPS || PPC_PREP || PPC_CHRP || PPC_PSERIES |
648 | default y | 648 | default y |
649 | help | 649 | help |
650 | This option allows to disable the internal PC-Speaker | 650 | This option allows to disable the internal PC-Speaker |
651 | support, saving some memory. | 651 | support, saving some memory. |
652 | 652 | ||
653 | config COMPAT_BRK | 653 | config COMPAT_BRK |
654 | bool "Disable heap randomization" | 654 | bool "Disable heap randomization" |
655 | default y | 655 | default y |
656 | help | 656 | help |
657 | Randomizing heap placement makes heap exploits harder, but it | 657 | Randomizing heap placement makes heap exploits harder, but it |
658 | also breaks ancient binaries (including anything libc5 based). | 658 | also breaks ancient binaries (including anything libc5 based). |
659 | This option changes the bootup default to heap randomization | 659 | This option changes the bootup default to heap randomization |
660 | disabled, and can be overriden runtime by setting | 660 | disabled, and can be overriden runtime by setting |
661 | /proc/sys/kernel/randomize_va_space to 2. | 661 | /proc/sys/kernel/randomize_va_space to 2. |
662 | 662 | ||
663 | On non-ancient distros (post-2000 ones) N is usually a safe choice. | 663 | On non-ancient distros (post-2000 ones) N is usually a safe choice. |
664 | 664 | ||
665 | config BASE_FULL | 665 | config BASE_FULL |
666 | default y | 666 | default y |
667 | bool "Enable full-sized data structures for core" if EMBEDDED | 667 | bool "Enable full-sized data structures for core" if EMBEDDED |
668 | help | 668 | help |
669 | Disabling this option reduces the size of miscellaneous core | 669 | Disabling this option reduces the size of miscellaneous core |
670 | kernel data structures. This saves memory on small machines, | 670 | kernel data structures. This saves memory on small machines, |
671 | but may reduce performance. | 671 | but may reduce performance. |
672 | 672 | ||
673 | config FUTEX | 673 | config FUTEX |
674 | bool "Enable futex support" if EMBEDDED | 674 | bool "Enable futex support" if EMBEDDED |
675 | default y | 675 | default y |
676 | select RT_MUTEXES | 676 | select RT_MUTEXES |
677 | help | 677 | help |
678 | Disabling this option will cause the kernel to be built without | 678 | Disabling this option will cause the kernel to be built without |
679 | support for "fast userspace mutexes". The resulting kernel may not | 679 | support for "fast userspace mutexes". The resulting kernel may not |
680 | run glibc-based applications correctly. | 680 | run glibc-based applications correctly. |
681 | 681 | ||
682 | config ANON_INODES | 682 | config ANON_INODES |
683 | bool | 683 | bool |
684 | 684 | ||
685 | config EPOLL | 685 | config EPOLL |
686 | bool "Enable eventpoll support" if EMBEDDED | 686 | bool "Enable eventpoll support" if EMBEDDED |
687 | default y | 687 | default y |
688 | select ANON_INODES | 688 | select ANON_INODES |
689 | help | 689 | help |
690 | Disabling this option will cause the kernel to be built without | 690 | Disabling this option will cause the kernel to be built without |
691 | support for epoll family of system calls. | 691 | support for epoll family of system calls. |
692 | 692 | ||
693 | config SIGNALFD | 693 | config SIGNALFD |
694 | bool "Enable signalfd() system call" if EMBEDDED | 694 | bool "Enable signalfd() system call" if EMBEDDED |
695 | select ANON_INODES | 695 | select ANON_INODES |
696 | default y | 696 | default y |
697 | help | 697 | help |
698 | Enable the signalfd() system call that allows to receive signals | 698 | Enable the signalfd() system call that allows to receive signals |
699 | on a file descriptor. | 699 | on a file descriptor. |
700 | 700 | ||
701 | If unsure, say Y. | 701 | If unsure, say Y. |
702 | 702 | ||
703 | config TIMERFD | 703 | config TIMERFD |
704 | bool "Enable timerfd() system call" if EMBEDDED | 704 | bool "Enable timerfd() system call" if EMBEDDED |
705 | select ANON_INODES | 705 | select ANON_INODES |
706 | default y | 706 | default y |
707 | help | 707 | help |
708 | Enable the timerfd() system call that allows to receive timer | 708 | Enable the timerfd() system call that allows to receive timer |
709 | events on a file descriptor. | 709 | events on a file descriptor. |
710 | 710 | ||
711 | If unsure, say Y. | 711 | If unsure, say Y. |
712 | 712 | ||
713 | config EVENTFD | 713 | config EVENTFD |
714 | bool "Enable eventfd() system call" if EMBEDDED | 714 | bool "Enable eventfd() system call" if EMBEDDED |
715 | select ANON_INODES | 715 | select ANON_INODES |
716 | default y | 716 | default y |
717 | help | 717 | help |
718 | Enable the eventfd() system call that allows to receive both | 718 | Enable the eventfd() system call that allows to receive both |
719 | kernel notification (ie. KAIO) or userspace notifications. | 719 | kernel notification (ie. KAIO) or userspace notifications. |
720 | 720 | ||
721 | If unsure, say Y. | 721 | If unsure, say Y. |
722 | 722 | ||
723 | config SHMEM | 723 | config SHMEM |
724 | bool "Use full shmem filesystem" if EMBEDDED | 724 | bool "Use full shmem filesystem" if EMBEDDED |
725 | default y | 725 | default y |
726 | depends on MMU | 726 | depends on MMU |
727 | help | 727 | help |
728 | The shmem is an internal filesystem used to manage shared memory. | 728 | The shmem is an internal filesystem used to manage shared memory. |
729 | It is backed by swap and manages resource limits. It is also exported | 729 | It is backed by swap and manages resource limits. It is also exported |
730 | to userspace as tmpfs if TMPFS is enabled. Disabling this | 730 | to userspace as tmpfs if TMPFS is enabled. Disabling this |
731 | option replaces shmem and tmpfs with the much simpler ramfs code, | 731 | option replaces shmem and tmpfs with the much simpler ramfs code, |
732 | which may be appropriate on small systems without swap. | 732 | which may be appropriate on small systems without swap. |
733 | 733 | ||
734 | config AIO | 734 | config AIO |
735 | bool "Enable AIO support" if EMBEDDED | 735 | bool "Enable AIO support" if EMBEDDED |
736 | default y | 736 | default y |
737 | help | 737 | help |
738 | This option enables POSIX asynchronous I/O which may by used | 738 | This option enables POSIX asynchronous I/O which may by used |
739 | by some high performance threaded applications. Disabling | 739 | by some high performance threaded applications. Disabling |
740 | this option saves about 7k. | 740 | this option saves about 7k. |
741 | 741 | ||
742 | config VM_EVENT_COUNTERS | 742 | config VM_EVENT_COUNTERS |
743 | default y | 743 | default y |
744 | bool "Enable VM event counters for /proc/vmstat" if EMBEDDED | 744 | bool "Enable VM event counters for /proc/vmstat" if EMBEDDED |
745 | help | 745 | help |
746 | VM event counters are needed for event counts to be shown. | 746 | VM event counters are needed for event counts to be shown. |
747 | This option allows the disabling of the VM event counters | 747 | This option allows the disabling of the VM event counters |
748 | on EMBEDDED systems. /proc/vmstat will only show page counts | 748 | on EMBEDDED systems. /proc/vmstat will only show page counts |
749 | if VM event counters are disabled. | 749 | if VM event counters are disabled. |
750 | 750 | ||
751 | config PCI_QUIRKS | 751 | config PCI_QUIRKS |
752 | default y | 752 | default y |
753 | bool "Enable PCI quirk workarounds" if EMBEDDED | 753 | bool "Enable PCI quirk workarounds" if EMBEDDED |
754 | depends on PCI | 754 | depends on PCI |
755 | help | 755 | help |
756 | This enables workarounds for various PCI chipset | 756 | This enables workarounds for various PCI chipset |
757 | bugs/quirks. Disable this only if your target machine is | 757 | bugs/quirks. Disable this only if your target machine is |
758 | unaffected by PCI quirks. | 758 | unaffected by PCI quirks. |
759 | 759 | ||
760 | config SLUB_DEBUG | 760 | config SLUB_DEBUG |
761 | default y | 761 | default y |
762 | bool "Enable SLUB debugging support" if EMBEDDED | 762 | bool "Enable SLUB debugging support" if EMBEDDED |
763 | depends on SLUB && SYSFS | 763 | depends on SLUB && SYSFS |
764 | help | 764 | help |
765 | SLUB has extensive debug support features. Disabling these can | 765 | SLUB has extensive debug support features. Disabling these can |
766 | result in significant savings in code size. This also disables | 766 | result in significant savings in code size. This also disables |
767 | SLUB sysfs support. /sys/slab will not exist and there will be | 767 | SLUB sysfs support. /sys/slab will not exist and there will be |
768 | no support for cache validation etc. | 768 | no support for cache validation etc. |
769 | 769 | ||
770 | choice | 770 | choice |
771 | prompt "Choose SLAB allocator" | 771 | prompt "Choose SLAB allocator" |
772 | default SLUB | 772 | default SLUB |
773 | help | 773 | help |
774 | This option allows to select a slab allocator. | 774 | This option allows to select a slab allocator. |
775 | 775 | ||
776 | config SLAB | 776 | config SLAB |
777 | bool "SLAB" | 777 | bool "SLAB" |
778 | help | 778 | help |
779 | The regular slab allocator that is established and known to work | 779 | The regular slab allocator that is established and known to work |
780 | well in all environments. It organizes cache hot objects in | 780 | well in all environments. It organizes cache hot objects in |
781 | per cpu and per node queues. | 781 | per cpu and per node queues. |
782 | 782 | ||
783 | config SLUB | 783 | config SLUB |
784 | bool "SLUB (Unqueued Allocator)" | 784 | bool "SLUB (Unqueued Allocator)" |
785 | help | 785 | help |
786 | SLUB is a slab allocator that minimizes cache line usage | 786 | SLUB is a slab allocator that minimizes cache line usage |
787 | instead of managing queues of cached objects (SLAB approach). | 787 | instead of managing queues of cached objects (SLAB approach). |
788 | Per cpu caching is realized using slabs of objects instead | 788 | Per cpu caching is realized using slabs of objects instead |
789 | of queues of objects. SLUB can use memory efficiently | 789 | of queues of objects. SLUB can use memory efficiently |
790 | and has enhanced diagnostics. SLUB is the default choice for | 790 | and has enhanced diagnostics. SLUB is the default choice for |
791 | a slab allocator. | 791 | a slab allocator. |
792 | 792 | ||
793 | config SLOB | 793 | config SLOB |
794 | depends on EMBEDDED | 794 | depends on EMBEDDED |
795 | bool "SLOB (Simple Allocator)" | 795 | bool "SLOB (Simple Allocator)" |
796 | help | 796 | help |
797 | SLOB replaces the stock allocator with a drastically simpler | 797 | SLOB replaces the stock allocator with a drastically simpler |
798 | allocator. SLOB is generally more space efficient but | 798 | allocator. SLOB is generally more space efficient but |
799 | does not perform as well on large systems. | 799 | does not perform as well on large systems. |
800 | 800 | ||
801 | endchoice | 801 | endchoice |
802 | 802 | ||
803 | config PROFILING | 803 | config PROFILING |
804 | bool "Profiling support (EXPERIMENTAL)" | 804 | bool "Profiling support (EXPERIMENTAL)" |
805 | help | 805 | help |
806 | Say Y here to enable the extended profiling support mechanisms used | 806 | Say Y here to enable the extended profiling support mechanisms used |
807 | by profilers such as OProfile. | 807 | by profilers such as OProfile. |
808 | 808 | ||
809 | # | 809 | # |
810 | # Place an empty function call at each tracepoint site. Can be | 810 | # Place an empty function call at each tracepoint site. Can be |
811 | # dynamically changed for a probe function. | 811 | # dynamically changed for a probe function. |
812 | # | 812 | # |
813 | config TRACEPOINTS | 813 | config TRACEPOINTS |
814 | bool | 814 | bool |
815 | 815 | ||
816 | config MARKERS | 816 | config MARKERS |
817 | bool "Activate markers" | 817 | bool "Activate markers" |
818 | depends on TRACEPOINTS | 818 | depends on TRACEPOINTS |
819 | help | 819 | help |
820 | Place an empty function call at each marker site. Can be | 820 | Place an empty function call at each marker site. Can be |
821 | dynamically changed for a probe function. | 821 | dynamically changed for a probe function. |
822 | 822 | ||
823 | source "arch/Kconfig" | 823 | source "arch/Kconfig" |
824 | 824 | ||
825 | endmenu # General setup | 825 | endmenu # General setup |
826 | 826 | ||
827 | config HAVE_GENERIC_DMA_COHERENT | 827 | config HAVE_GENERIC_DMA_COHERENT |
828 | bool | 828 | bool |
829 | default n | 829 | default n |
830 | 830 | ||
831 | config SLABINFO | 831 | config SLABINFO |
832 | bool | 832 | bool |
833 | depends on PROC_FS | 833 | depends on PROC_FS |
834 | depends on SLAB || SLUB_DEBUG | 834 | depends on SLAB || SLUB_DEBUG |
835 | default y | 835 | default y |
836 | 836 | ||
837 | config RT_MUTEXES | 837 | config RT_MUTEXES |
838 | boolean | 838 | boolean |
839 | select PLIST | 839 | select PLIST |
840 | 840 | ||
841 | config TINY_SHMEM | 841 | config TINY_SHMEM |
842 | default !SHMEM | 842 | default !SHMEM |
843 | bool | 843 | bool |
844 | 844 | ||
845 | config BASE_SMALL | 845 | config BASE_SMALL |
846 | int | 846 | int |
847 | default 0 if BASE_FULL | 847 | default 0 if BASE_FULL |
848 | default 1 if !BASE_FULL | 848 | default 1 if !BASE_FULL |
849 | 849 | ||
850 | menuconfig MODULES | 850 | menuconfig MODULES |
851 | bool "Enable loadable module support" | 851 | bool "Enable loadable module support" |
852 | help | 852 | help |
853 | Kernel modules are small pieces of compiled code which can | 853 | Kernel modules are small pieces of compiled code which can |
854 | be inserted in the running kernel, rather than being | 854 | be inserted in the running kernel, rather than being |
855 | permanently built into the kernel. You use the "modprobe" | 855 | permanently built into the kernel. You use the "modprobe" |
856 | tool to add (and sometimes remove) them. If you say Y here, | 856 | tool to add (and sometimes remove) them. If you say Y here, |
857 | many parts of the kernel can be built as modules (by | 857 | many parts of the kernel can be built as modules (by |
858 | answering M instead of Y where indicated): this is most | 858 | answering M instead of Y where indicated): this is most |
859 | useful for infrequently used options which are not required | 859 | useful for infrequently used options which are not required |
860 | for booting. For more information, see the man pages for | 860 | for booting. For more information, see the man pages for |
861 | modprobe, lsmod, modinfo, insmod and rmmod. | 861 | modprobe, lsmod, modinfo, insmod and rmmod. |
862 | 862 | ||
863 | If you say Y here, you will need to run "make | 863 | If you say Y here, you will need to run "make |
864 | modules_install" to put the modules under /lib/modules/ | 864 | modules_install" to put the modules under /lib/modules/ |
865 | where modprobe can find them (you may need to be root to do | 865 | where modprobe can find them (you may need to be root to do |
866 | this). | 866 | this). |
867 | 867 | ||
868 | If unsure, say Y. | 868 | If unsure, say Y. |
869 | 869 | ||
870 | if MODULES | 870 | if MODULES |
871 | 871 | ||
872 | config MODULE_FORCE_LOAD | 872 | config MODULE_FORCE_LOAD |
873 | bool "Forced module loading" | 873 | bool "Forced module loading" |
874 | default n | 874 | default n |
875 | help | 875 | help |
876 | Allow loading of modules without version information (ie. modprobe | 876 | Allow loading of modules without version information (ie. modprobe |
877 | --force). Forced module loading sets the 'F' (forced) taint flag and | 877 | --force). Forced module loading sets the 'F' (forced) taint flag and |
878 | is usually a really bad idea. | 878 | is usually a really bad idea. |
879 | 879 | ||
880 | config MODULE_UNLOAD | 880 | config MODULE_UNLOAD |
881 | bool "Module unloading" | 881 | bool "Module unloading" |
882 | help | 882 | help |
883 | Without this option you will not be able to unload any | 883 | Without this option you will not be able to unload any |
884 | modules (note that some modules may not be unloadable | 884 | modules (note that some modules may not be unloadable |
885 | anyway), which makes your kernel smaller, faster | 885 | anyway), which makes your kernel smaller, faster |
886 | and simpler. If unsure, say Y. | 886 | and simpler. If unsure, say Y. |
887 | 887 | ||
888 | config MODULE_FORCE_UNLOAD | 888 | config MODULE_FORCE_UNLOAD |
889 | bool "Forced module unloading" | 889 | bool "Forced module unloading" |
890 | depends on MODULE_UNLOAD && EXPERIMENTAL | 890 | depends on MODULE_UNLOAD && EXPERIMENTAL |
891 | help | 891 | help |
892 | This option allows you to force a module to unload, even if the | 892 | This option allows you to force a module to unload, even if the |
893 | kernel believes it is unsafe: the kernel will remove the module | 893 | kernel believes it is unsafe: the kernel will remove the module |
894 | without waiting for anyone to stop using it (using the -f option to | 894 | without waiting for anyone to stop using it (using the -f option to |
895 | rmmod). This is mainly for kernel developers and desperate users. | 895 | rmmod). This is mainly for kernel developers and desperate users. |
896 | If unsure, say N. | 896 | If unsure, say N. |
897 | 897 | ||
898 | config MODVERSIONS | 898 | config MODVERSIONS |
899 | bool "Module versioning support" | 899 | bool "Module versioning support" |
900 | help | 900 | help |
901 | Usually, you have to use modules compiled with your kernel. | 901 | Usually, you have to use modules compiled with your kernel. |
902 | Saying Y here makes it sometimes possible to use modules | 902 | Saying Y here makes it sometimes possible to use modules |
903 | compiled for different kernels, by adding enough information | 903 | compiled for different kernels, by adding enough information |
904 | to the modules to (hopefully) spot any changes which would | 904 | to the modules to (hopefully) spot any changes which would |
905 | make them incompatible with the kernel you are running. If | 905 | make them incompatible with the kernel you are running. If |
906 | unsure, say N. | 906 | unsure, say N. |
907 | 907 | ||
908 | config MODULE_SRCVERSION_ALL | 908 | config MODULE_SRCVERSION_ALL |
909 | bool "Source checksum for all modules" | 909 | bool "Source checksum for all modules" |
910 | help | 910 | help |
911 | Modules which contain a MODULE_VERSION get an extra "srcversion" | 911 | Modules which contain a MODULE_VERSION get an extra "srcversion" |
912 | field inserted into their modinfo section, which contains a | 912 | field inserted into their modinfo section, which contains a |
913 | sum of the source files which made it. This helps maintainers | 913 | sum of the source files which made it. This helps maintainers |
914 | see exactly which source was used to build a module (since | 914 | see exactly which source was used to build a module (since |
915 | others sometimes change the module source without updating | 915 | others sometimes change the module source without updating |
916 | the version). With this option, such a "srcversion" field | 916 | the version). With this option, such a "srcversion" field |
917 | will be created for all modules. If unsure, say N. | 917 | will be created for all modules. If unsure, say N. |
918 | 918 | ||
919 | config KMOD | ||
920 | def_bool y | ||
921 | help | ||
922 | This is being removed soon. These days, CONFIG_MODULES | ||
923 | implies CONFIG_KMOD, so use that instead. | ||
924 | |||
925 | endif # MODULES | 919 | endif # MODULES |
926 | 920 | ||
927 | config INIT_ALL_POSSIBLE | 921 | config INIT_ALL_POSSIBLE |
928 | bool | 922 | bool |
929 | help | 923 | help |
930 | Back when each arch used to define their own cpu_online_map and | 924 | Back when each arch used to define their own cpu_online_map and |
931 | cpu_possible_map, some of them chose to initialize cpu_possible_map | 925 | cpu_possible_map, some of them chose to initialize cpu_possible_map |
932 | with all 1s, and others with all 0s. When they were centralised, | 926 | with all 1s, and others with all 0s. When they were centralised, |
933 | it was better to provide this option than to break all the archs | 927 | it was better to provide this option than to break all the archs |
934 | and have several arch maintainers persuing me down dark alleys. | 928 | and have several arch maintainers persuing me down dark alleys. |
935 | 929 | ||
936 | config STOP_MACHINE | 930 | config STOP_MACHINE |
937 | bool | 931 | bool |
938 | default y | 932 | default y |
939 | depends on (SMP && MODULE_UNLOAD) || HOTPLUG_CPU | 933 | depends on (SMP && MODULE_UNLOAD) || HOTPLUG_CPU |
940 | help | 934 | help |
941 | Need stop_machine() primitive. | 935 | Need stop_machine() primitive. |
942 | 936 | ||
943 | source "block/Kconfig" | 937 | source "block/Kconfig" |
944 | 938 | ||
945 | config PREEMPT_NOTIFIERS | 939 | config PREEMPT_NOTIFIERS |
946 | bool | 940 | bool |
947 | 941 | ||
948 | choice | 942 | choice |
949 | prompt "RCU Implementation" | 943 | prompt "RCU Implementation" |
950 | default CLASSIC_RCU | 944 | default CLASSIC_RCU |
951 | 945 | ||
952 | config CLASSIC_RCU | 946 | config CLASSIC_RCU |
953 | bool "Classic RCU" | 947 | bool "Classic RCU" |
954 | help | 948 | help |
955 | This option selects the classic RCU implementation that is | 949 | This option selects the classic RCU implementation that is |
956 | designed for best read-side performance on non-realtime | 950 | designed for best read-side performance on non-realtime |
957 | systems. | 951 | systems. |
958 | 952 | ||
959 | Select this option if you are unsure. | 953 | Select this option if you are unsure. |
960 | 954 | ||
961 | config TREE_RCU | 955 | config TREE_RCU |
962 | bool "Tree-based hierarchical RCU" | 956 | bool "Tree-based hierarchical RCU" |
963 | help | 957 | help |
964 | This option selects the RCU implementation that is | 958 | This option selects the RCU implementation that is |
965 | designed for very large SMP system with hundreds or | 959 | designed for very large SMP system with hundreds or |
966 | thousands of CPUs. | 960 | thousands of CPUs. |
967 | 961 | ||
968 | config PREEMPT_RCU | 962 | config PREEMPT_RCU |
969 | bool "Preemptible RCU" | 963 | bool "Preemptible RCU" |
970 | depends on PREEMPT | 964 | depends on PREEMPT |
971 | help | 965 | help |
972 | This option reduces the latency of the kernel by making certain | 966 | This option reduces the latency of the kernel by making certain |
973 | RCU sections preemptible. Normally RCU code is non-preemptible, if | 967 | RCU sections preemptible. Normally RCU code is non-preemptible, if |
974 | this option is selected then read-only RCU sections become | 968 | this option is selected then read-only RCU sections become |
975 | preemptible. This helps latency, but may expose bugs due to | 969 | preemptible. This helps latency, but may expose bugs due to |
976 | now-naive assumptions about each RCU read-side critical section | 970 | now-naive assumptions about each RCU read-side critical section |
977 | remaining on a given CPU through its execution. | 971 | remaining on a given CPU through its execution. |
978 | 972 | ||
979 | endchoice | 973 | endchoice |
980 | 974 | ||
981 | config RCU_TRACE | 975 | config RCU_TRACE |
982 | bool "Enable tracing for RCU" | 976 | bool "Enable tracing for RCU" |
983 | depends on TREE_RCU || PREEMPT_RCU | 977 | depends on TREE_RCU || PREEMPT_RCU |
984 | help | 978 | help |
985 | This option provides tracing in RCU which presents stats | 979 | This option provides tracing in RCU which presents stats |
986 | in debugfs for debugging RCU implementation. | 980 | in debugfs for debugging RCU implementation. |
987 | 981 | ||
988 | Say Y here if you want to enable RCU tracing | 982 | Say Y here if you want to enable RCU tracing |
989 | Say N if you are unsure. | 983 | Say N if you are unsure. |
990 | 984 | ||
991 | config RCU_FANOUT | 985 | config RCU_FANOUT |
992 | int "Tree-based hierarchical RCU fanout value" | 986 | int "Tree-based hierarchical RCU fanout value" |
993 | range 2 64 if 64BIT | 987 | range 2 64 if 64BIT |
994 | range 2 32 if !64BIT | 988 | range 2 32 if !64BIT |
995 | depends on TREE_RCU | 989 | depends on TREE_RCU |
996 | default 64 if 64BIT | 990 | default 64 if 64BIT |
997 | default 32 if !64BIT | 991 | default 32 if !64BIT |
998 | help | 992 | help |
999 | This option controls the fanout of hierarchical implementations | 993 | This option controls the fanout of hierarchical implementations |
1000 | of RCU, allowing RCU to work efficiently on machines with | 994 | of RCU, allowing RCU to work efficiently on machines with |
1001 | large numbers of CPUs. This value must be at least the cube | 995 | large numbers of CPUs. This value must be at least the cube |
1002 | root of NR_CPUS, which allows NR_CPUS up to 32,768 for 32-bit | 996 | root of NR_CPUS, which allows NR_CPUS up to 32,768 for 32-bit |
1003 | systems and up to 262,144 for 64-bit systems. | 997 | systems and up to 262,144 for 64-bit systems. |
1004 | 998 | ||
1005 | Select a specific number if testing RCU itself. | 999 | Select a specific number if testing RCU itself. |
1006 | Take the default if unsure. | 1000 | Take the default if unsure. |
1007 | 1001 | ||
1008 | config RCU_FANOUT_EXACT | 1002 | config RCU_FANOUT_EXACT |
1009 | bool "Disable tree-based hierarchical RCU auto-balancing" | 1003 | bool "Disable tree-based hierarchical RCU auto-balancing" |
1010 | depends on TREE_RCU | 1004 | depends on TREE_RCU |
1011 | default n | 1005 | default n |
1012 | help | 1006 | help |
1013 | This option forces use of the exact RCU_FANOUT value specified, | 1007 | This option forces use of the exact RCU_FANOUT value specified, |
1014 | regardless of imbalances in the hierarchy. This is useful for | 1008 | regardless of imbalances in the hierarchy. This is useful for |
1015 | testing RCU itself, and might one day be useful on systems with | 1009 | testing RCU itself, and might one day be useful on systems with |
1016 | strong NUMA behavior. | 1010 | strong NUMA behavior. |
1017 | 1011 | ||
1018 | Without RCU_FANOUT_EXACT, the code will balance the hierarchy. | 1012 | Without RCU_FANOUT_EXACT, the code will balance the hierarchy. |
1019 | 1013 | ||
1020 | Say N if unsure. | 1014 | Say N if unsure. |
1021 | 1015 | ||
1022 | config TREE_RCU_TRACE | 1016 | config TREE_RCU_TRACE |
1023 | def_bool RCU_TRACE && TREE_RCU | 1017 | def_bool RCU_TRACE && TREE_RCU |
1024 | select DEBUG_FS | 1018 | select DEBUG_FS |
1025 | help | 1019 | help |
1026 | This option provides tracing for the TREE_RCU implementation, | 1020 | This option provides tracing for the TREE_RCU implementation, |
1027 | permitting Makefile to trivially select kernel/rcutree_trace.c. | 1021 | permitting Makefile to trivially select kernel/rcutree_trace.c. |
1028 | 1022 | ||
1029 | config PREEMPT_RCU_TRACE | 1023 | config PREEMPT_RCU_TRACE |
1030 | def_bool RCU_TRACE && PREEMPT_RCU | 1024 | def_bool RCU_TRACE && PREEMPT_RCU |
1031 | select DEBUG_FS | 1025 | select DEBUG_FS |
1032 | help | 1026 | help |
1033 | This option provides tracing for the PREEMPT_RCU implementation, | 1027 | This option provides tracing for the PREEMPT_RCU implementation, |
1034 | permitting Makefile to trivially select kernel/rcupreempt_trace.c. | 1028 | permitting Makefile to trivially select kernel/rcupreempt_trace.c. |
1035 | 1029 |