blob: 322b1f8c21b3555c2e11c186a08cb4588e1b75bc [file] [log] [blame]
Roman Zippelface4372006-06-08 22:12:45 -07001config DEFCONFIG_LIST
2 string
Paolo 'Blaisorblade' Giarrussob2670eac2006-10-19 23:28:23 -07003 depends on !UML
Roman Zippelface4372006-06-08 22:12:45 -07004 option defconfig_list
5 default "/lib/modules/$UNAME_RELEASE/.config"
6 default "/etc/kernel-config"
7 default "/boot/config-$UNAME_RELEASE"
8 default "arch/$ARCH/defconfig"
9
Linus Torvalds1da177e2005-04-16 15:20:36 -070010menu "Code maturity level options"
11
12config EXPERIMENTAL
13 bool "Prompt for development and/or incomplete code/drivers"
14 ---help---
15 Some of the various things that Linux supports (such as network
16 drivers, file systems, network protocols, etc.) can be in a state
17 of development where the functionality, stability, or the level of
18 testing is not yet high enough for general use. This is usually
19 known as the "alpha-test" phase among developers. If a feature is
20 currently in alpha-test, then the developers usually discourage
21 uninformed widespread use of this feature by the general public to
22 avoid "Why doesn't this work?" type mail messages. However, active
23 testing and use of these systems is welcomed. Just be aware that it
24 may not meet the normal level of reliability or it may fail to work
25 in some special cases. Detailed bug reports from people familiar
26 with the kernel internals are usually welcomed by the developers
27 (before submitting bug reports, please read the documents
28 <file:README>, <file:MAINTAINERS>, <file:REPORTING-BUGS>,
29 <file:Documentation/BUG-HUNTING>, and
30 <file:Documentation/oops-tracing.txt> in the kernel source).
31
32 This option will also make obsoleted drivers available. These are
33 drivers that have been replaced by something else, and/or are
34 scheduled to be removed in a future kernel release.
35
36 Unless you intend to help test and develop a feature or driver that
37 falls into this category, or you have a situation that requires
38 using these features, you should probably say N here, which will
39 cause the configurator to present you with fewer choices. If
40 you say Y here, you will be offered the choice of using features or
41 drivers that are currently considered to be in the alpha-test phase.
42
Linus Torvalds1da177e2005-04-16 15:20:36 -070043config BROKEN
44 bool
Linus Torvalds1da177e2005-04-16 15:20:36 -070045
46config BROKEN_ON_SMP
47 bool
48 depends on BROKEN || !SMP
49 default y
50
51config LOCK_KERNEL
52 bool
53 depends on SMP || PREEMPT
54 default y
55
56config INIT_ENV_ARG_LIMIT
57 int
Adrian Bunkdd673bc2006-06-30 01:55:51 -070058 default 32 if !UML
59 default 128 if UML
Linus Torvalds1da177e2005-04-16 15:20:36 -070060 help
Randy Dunlap34ad92c2005-10-30 15:01:46 -080061 Maximum of each of the number of arguments and environment
62 variables passed to init from the kernel command line.
Linus Torvalds1da177e2005-04-16 15:20:36 -070063
64endmenu
65
66menu "General setup"
67
68config LOCALVERSION
69 string "Local version - append to kernel release"
70 help
71 Append an extra string to the end of your kernel version.
72 This will show up when you type uname, for example.
73 The string you set here will be appended after the contents of
74 any files with a filename matching localversion* in your
75 object and source tree, in that order. Your total string can
76 be a maximum of 64 characters.
77
Ryan Andersonaaebf432005-07-31 04:57:49 -040078config LOCALVERSION_AUTO
79 bool "Automatically append version information to the version string"
80 default y
81 help
82 This will try to automatically determine if the current tree is a
Robert P. J. Day6e5a5422007-05-01 23:08:11 +020083 release tree by looking for git tags that belong to the current
84 top of tree revision.
Ryan Andersonaaebf432005-07-31 04:57:49 -040085
86 A string of the format -gxxxxxxxx will be added to the localversion
Robert P. J. Day6e5a5422007-05-01 23:08:11 +020087 if a git-based tree is found. The string generated by this will be
Ryan Andersonaaebf432005-07-31 04:57:49 -040088 appended after any matching localversion* files, and after the value
Robert P. J. Day6e5a5422007-05-01 23:08:11 +020089 set in CONFIG_LOCALVERSION.
Ryan Andersonaaebf432005-07-31 04:57:49 -040090
Robert P. J. Day6e5a5422007-05-01 23:08:11 +020091 (The actual string used here is the first eight characters produced
92 by running the command:
93
94 $ git rev-parse --verify HEAD
95
96 which is done within the script "scripts/setlocalversion".)
Ryan Andersonaaebf432005-07-31 04:57:49 -040097
Linus Torvalds1da177e2005-04-16 15:20:36 -070098config SWAP
99 bool "Support for paging of anonymous memory (swap)"
David Howells93614012006-09-30 20:45:40 +0200100 depends on MMU && BLOCK
Linus Torvalds1da177e2005-04-16 15:20:36 -0700101 default y
102 help
103 This option allows you to choose whether you want to have support
Jesper Juhl92c35042006-01-15 02:40:08 +0100104 for so called swap devices or swap files in your kernel that are
Linus Torvalds1da177e2005-04-16 15:20:36 -0700105 used to provide more virtual memory than the actual RAM present
106 in your computer. If unsure say Y.
107
108config SYSVIPC
109 bool "System V IPC"
Linus Torvalds1da177e2005-04-16 15:20:36 -0700110 ---help---
111 Inter Process Communication is a suite of library functions and
112 system calls which let processes (running programs) synchronize and
113 exchange information. It is generally considered to be a good thing,
114 and some programs won't run unless you say Y here. In particular, if
115 you want to run the DOS emulator dosemu under Linux (read the
116 DOSEMU-HOWTO, available from <http://www.tldp.org/docs.html#howto>),
117 you'll need to say Y here.
118
119 You can find documentation about IPC with "info ipc" and also in
120 section 6.4 of the Linux Programmer's Guide, available from
121 <http://www.tldp.org/guides.html>.
122
Kirill Korotaev25b21cb2006-10-02 02:18:19 -0700123config IPC_NS
124 bool "IPC Namespaces"
125 depends on SYSVIPC
126 default n
127 help
128 Support ipc namespaces. This allows containers, i.e. virtual
129 environments, to use ipc namespaces to provide different ipc
130 objects for different servers. If unsure, say N.
131
Eric W. Biedermana5494dc2007-02-14 00:34:06 -0800132config SYSVIPC_SYSCTL
133 bool
134 depends on SYSVIPC
135 depends on SYSCTL
136 default y
137
Linus Torvalds1da177e2005-04-16 15:20:36 -0700138config POSIX_MQUEUE
139 bool "POSIX Message Queues"
140 depends on NET && EXPERIMENTAL
141 ---help---
142 POSIX variant of message queues is a part of IPC. In POSIX message
143 queues every message has a priority which decides about succession
144 of receiving it by a process. If you want to compile and run
145 programs written e.g. for Solaris with use of its POSIX message
Robert P. J. Dayb0e37652007-05-09 07:25:13 +0200146 queues (functions mq_*) say Y here.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700147
148 POSIX message queues are visible as a filesystem called 'mqueue'
149 and can be mounted somewhere if you want to do filesystem
150 operations on message queues.
151
152 If unsure, say Y.
153
154config BSD_PROCESS_ACCT
155 bool "BSD Process Accounting"
156 help
157 If you say Y here, a user level program will be able to instruct the
158 kernel (via a special system call) to write process accounting
159 information to a file: whenever a process exits, information about
160 that process will be appended to the file by the kernel. The
161 information includes things such as creation time, owning user,
162 command name, memory usage, controlling terminal etc. (the complete
163 list is in the struct acct in <file:include/linux/acct.h>). It is
164 up to the user level program to do useful things with this
165 information. This is generally a good idea, so say Y.
166
167config BSD_PROCESS_ACCT_V3
168 bool "BSD Process Accounting version 3 file format"
169 depends on BSD_PROCESS_ACCT
170 default n
171 help
172 If you say Y here, the process accounting information is written
173 in a new file format that also logs the process IDs of each
174 process and it's parent. Note that this file format is incompatible
175 with previous v0/v1/v2 file formats, so you will need updated tools
176 for processing it. A preliminary version of these tools is available
177 at <http://www.physik3.uni-rostock.de/tim/kernel/utils/acct/>.
178
Shailabh Nagarc7572492006-07-14 00:24:40 -0700179config TASKSTATS
180 bool "Export task/process statistics through netlink (EXPERIMENTAL)"
181 depends on NET
182 default n
183 help
184 Export selected statistics for tasks/processes through the
185 generic netlink interface. Unlike BSD process accounting, the
186 statistics are available during the lifetime of tasks/processes as
187 responses to commands. Like BSD accounting, they are sent to user
188 space on task exit.
189
190 Say N if unsure.
191
Shailabh Nagarca74e922006-07-14 00:24:36 -0700192config TASK_DELAY_ACCT
193 bool "Enable per-task delay accounting (EXPERIMENTAL)"
Shailabh Nagar6f449932006-07-14 00:24:41 -0700194 depends on TASKSTATS
Shailabh Nagarca74e922006-07-14 00:24:36 -0700195 help
196 Collect information on time spent by a task waiting for system
197 resources like cpu, synchronous block I/O completion and swapping
198 in pages. Such statistics can help in setting a task's priorities
199 relative to other tasks for cpu, io, rss limits etc.
200
201 Say N if unsure.
202
Alexey Dobriyan18f705f2007-02-10 01:46:44 -0800203config TASK_XACCT
204 bool "Enable extended accounting over taskstats (EXPERIMENTAL)"
205 depends on TASKSTATS
206 help
207 Collect extended task accounting data and send the data
208 to userland for processing over the taskstats interface.
209
210 Say N if unsure.
211
212config TASK_IO_ACCOUNTING
213 bool "Enable per-task storage I/O accounting (EXPERIMENTAL)"
214 depends on TASK_XACCT
215 help
216 Collect information on the number of bytes of storage I/O which this
217 task has caused.
218
219 Say N if unsure.
220
Serge E. Hallyn4865ecf2006-10-02 02:18:14 -0700221config UTS_NS
222 bool "UTS Namespaces"
223 default n
224 help
225 Support uts namespaces. This allows containers, i.e.
226 vservers, to use uts namespaces to provide different
227 uts info for different servers. If unsure, say N.
228
Linus Torvalds1da177e2005-04-16 15:20:36 -0700229config AUDIT
230 bool "Auditing support"
Chris Wright804a6a492005-05-11 10:52:45 +0100231 depends on NET
Linus Torvalds1da177e2005-04-16 15:20:36 -0700232 help
233 Enable auditing infrastructure that can be used with another
234 kernel subsystem, such as SELinux (which requires this for
235 logging of avc messages output). Does not do system-call
236 auditing without CONFIG_AUDITSYSCALL.
237
238config AUDITSYSCALL
239 bool "Enable system-call auditing support"
Martin Schwidefsky347a8dc2006-01-06 00:19:28 -0800240 depends on AUDIT && (X86 || PPC || PPC64 || S390 || IA64 || UML || SPARC64)
Linus Torvalds1da177e2005-04-16 15:20:36 -0700241 default y if SECURITY_SELINUX
242 help
243 Enable low-overhead system-call auditing infrastructure that
244 can be used independently or with another kernel subsystem,
Amy Griffisf368c07d2006-04-07 16:55:56 -0400245 such as SELinux. To use audit's filesystem watch feature, please
246 ensure that INOTIFY is configured.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700247
Linus Torvalds1da177e2005-04-16 15:20:36 -0700248config IKCONFIG
Ross Birof2443ab2006-09-30 23:27:25 -0700249 tristate "Kernel .config support"
Linus Torvalds1da177e2005-04-16 15:20:36 -0700250 ---help---
251 This option enables the complete Linux kernel ".config" file
252 contents to be saved in the kernel. It provides documentation
253 of which kernel options are used in a running kernel or in an
254 on-disk kernel. This information can be extracted from the kernel
255 image file with the script scripts/extract-ikconfig and used as
256 input to rebuild the current kernel or to build another kernel.
257 It can also be extracted from a running kernel by reading
258 /proc/config.gz if enabled (below).
259
260config IKCONFIG_PROC
261 bool "Enable access to .config through /proc/config.gz"
262 depends on IKCONFIG && PROC_FS
263 ---help---
264 This option enables access to the kernel configuration file
265 through /proc/config.gz.
266
Alistair John Strachan794543a2007-05-08 00:31:15 -0700267config LOG_BUF_SHIFT
268 int "Kernel log buffer size (16 => 64KB, 17 => 128KB)"
269 range 12 21
270 default 17 if S390 || LOCKDEP
271 default 16 if X86_NUMAQ || IA64
272 default 15 if SMP
273 default 14
274 help
275 Select kernel log buffer size as a power of 2.
276 Defaults and Examples:
277 17 => 128 KB for S/390
278 16 => 64 KB for x86 NUMAQ or IA-64
279 15 => 32 KB for SMP
280 14 => 16 KB for uniprocessor
281 13 => 8 KB
282 12 => 4 KB
283
Linus Torvalds1da177e2005-04-16 15:20:36 -0700284config CPUSETS
285 bool "Cpuset support"
286 depends on SMP
287 help
Randy Dunlapd9fd8a62005-07-27 11:45:11 -0700288 This option will let you create and manage CPUSETs which
Linus Torvalds1da177e2005-04-16 15:20:36 -0700289 allow dynamically partitioning a system into sets of CPUs and
290 Memory Nodes and assigning tasks to run only within those sets.
291 This is primarily useful on large SMP or NUMA systems.
292
293 Say N if unsure.
294
Kay Sievers88a22c92006-09-14 11:23:28 +0200295config SYSFS_DEPRECATED
296 bool "Create deprecated sysfs files"
297 default y
298 help
299 This option creates deprecated symlinks such as the
300 "device"-link, the <subsystem>:<name>-link, and the
301 "bus"-link. It may also add deprecated key in the
302 uevent environment.
303 None of these features or values should be used today, as
304 they export driver core implementation details to userspace
305 or export properties which can't be kept stable across kernel
306 releases.
307
308 If enabled, this option will also move any device structures
David Sterba3dde6ad2007-05-09 07:12:20 +0200309 that belong to a class, back into the /sys/class hierarchy, in
Kay Sievers88a22c92006-09-14 11:23:28 +0200310 order to support older versions of udev.
311
312 If you are using a distro that was released in 2006 or later,
313 it should be safe to say N here.
314
Jens Axboeb86ff9812006-03-23 19:56:55 +0100315config RELAY
316 bool "Kernel->user space relay support (formerly relayfs)"
317 help
318 This option enables support for relay interface support in
319 certain file systems (such as debugfs).
320 It is designed to provide an efficient mechanism for tools and
321 facilities to relay large amounts of data from kernel space to
322 user space.
323
324 If unsure, say N.
325
Dimitri Gorokhovikf9916332007-03-06 01:42:17 -0800326config BLK_DEV_INITRD
327 bool "Initial RAM filesystem and RAM disk (initramfs/initrd) support"
328 depends on BROKEN || !FRV
329 help
330 The initial RAM filesystem is a ramfs which is loaded by the
331 boot loader (loadlin or lilo) and that is mounted as root
332 before the normal boot procedure. It is typically used to
333 load modules needed to mount the "real" root file system,
334 etc. See <file:Documentation/initrd.txt> for details.
335
336 If RAM disk support (BLK_DEV_RAM) is also included, this
337 also enables initial RAM disk (initrd) support and adds
338 15 Kbytes (more on some other architectures) to the kernel size.
339
340 If unsure say Y.
341
Jean-Paul Samanc33df4e2007-02-10 01:44:43 -0800342if BLK_DEV_INITRD
343
Sam Ravnborgdbec4862005-08-10 20:44:50 +0200344source "usr/Kconfig"
345
Jean-Paul Samanc33df4e2007-02-10 01:44:43 -0800346endif
347
Linus Torvaldsc45b4f12005-12-14 18:52:21 -0800348config CC_OPTIMIZE_FOR_SIZE
349 bool "Optimize for size (Look out for broken compilers!)"
350 default y
351 depends on ARM || H8300 || EXPERIMENTAL
Linus Torvaldsc45b4f12005-12-14 18:52:21 -0800352 help
353 Enabling this option will pass "-Os" instead of "-O2" to gcc
354 resulting in a smaller kernel.
355
356 WARNING: some versions of gcc may generate incorrect code with this
357 option. If problems are observed, a gcc upgrade may be needed.
358
359 If unsure, say N.
360
Randy Dunlap08470622006-09-30 23:28:13 -0700361config SYSCTL
362 bool
363
Linus Torvalds1da177e2005-04-16 15:20:36 -0700364menuconfig EMBEDDED
365 bool "Configure standard kernel features (for small systems)"
366 help
367 This option allows certain base kernel options and settings
368 to be disabled or tweaked. This is for specialized
369 environments which can tolerate a "non-standard" kernel.
370 Only use this if you really know what you are doing.
371
Chuck Ebbertae81f9e2006-09-16 12:15:53 -0700372config UID16
373 bool "Enable 16-bit UID system calls" if EMBEDDED
Bryan Wu1394f032007-05-06 14:50:22 -0700374 depends on ARM || BFIN || CRIS || FRV || H8300 || X86_32 || M68K || (S390 && !64BIT) || SUPERH || SPARC32 || (SPARC64 && SPARC32_COMPAT) || UML || (X86_64 && IA32_EMULATION)
Chuck Ebbertae81f9e2006-09-16 12:15:53 -0700375 default y
376 help
377 This enables the legacy 16-bit UID syscall wrappers.
378
Eric W. Biedermanb89a8172006-09-27 01:51:04 -0700379config SYSCTL_SYSCALL
Randy Dunlap08470622006-09-30 23:28:13 -0700380 bool "Sysctl syscall support" if EMBEDDED
Eric W. Biederman13bb7e32006-11-08 17:44:51 -0800381 default y
Eric W. Biedermanb89a8172006-09-27 01:51:04 -0700382 select SYSCTL
383 ---help---
Eric W. Biederman13bb7e32006-11-08 17:44:51 -0800384 sys_sysctl uses binary paths that have been found challenging
385 to properly maintain and use. The interface in /proc/sys
386 using paths with ascii names is now the primary path to this
387 information.
Eric W. Biedermanb89a8172006-09-27 01:51:04 -0700388
Eric W. Biederman13bb7e32006-11-08 17:44:51 -0800389 Almost nothing using the binary sysctl interface so if you are
390 trying to save some space it is probably safe to disable this,
391 making your kernel marginally smaller.
Eric W. Biedermanb89a8172006-09-27 01:51:04 -0700392
Eric W. Biederman13bb7e32006-11-08 17:44:51 -0800393 If unsure say Y here.
Chuck Ebbertae81f9e2006-09-16 12:15:53 -0700394
Linus Torvalds1da177e2005-04-16 15:20:36 -0700395config KALLSYMS
Jesper Juhl979c6a12006-12-12 19:25:11 +0100396 bool "Load all symbols for debugging/ksymoops" if EMBEDDED
Linus Torvalds1da177e2005-04-16 15:20:36 -0700397 default y
398 help
399 Say Y here to let the kernel print out symbolic crash information and
400 symbolic stack backtraces. This increases the size of the kernel
401 somewhat, as all symbols have to be loaded into the kernel image.
402
403config KALLSYMS_ALL
404 bool "Include all symbols in kallsyms"
405 depends on DEBUG_KERNEL && KALLSYMS
406 help
407 Normally kallsyms only contains the symbols of functions, for nicer
408 OOPS messages. Some debuggers can use kallsyms for other
Jesper Juhlf9f97bc2005-07-20 05:43:05 +0200409 symbols too: say Y here to include all symbols, if you need them
410 and you don't care about adding 300k to the size of your kernel.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700411
412 Say N.
413
414config KALLSYMS_EXTRA_PASS
415 bool "Do an extra kallsyms pass"
416 depends on KALLSYMS
417 help
418 If kallsyms is not working correctly, the build will fail with
419 inconsistent kallsyms data. If that occurs, log a bug report and
420 turn on KALLSYMS_EXTRA_PASS which should result in a stable build.
421 Always say N here unless you find a bug in kallsyms, which must be
422 reported. KALLSYMS_EXTRA_PASS is only a temporary workaround while
423 you wait for kallsyms to be fixed.
424
Matt Mackalld59745c2005-05-01 08:59:02 -0700425
Greg Kroah-Hartman712f47c2005-11-16 11:27:07 -0800426config HOTPLUG
427 bool "Support for hot-pluggable devices" if EMBEDDED
428 default y
429 help
430 This option is provided for the case where no hotplug or uevent
431 capabilities is wanted by the kernel. You should only consider
432 disabling this option for embedded systems that do not use modules, a
433 dynamic /dev tree, or dynamic device discovery. Just say Y.
434
Matt Mackalld59745c2005-05-01 08:59:02 -0700435config PRINTK
436 default y
437 bool "Enable support for printk" if EMBEDDED
438 help
439 This option enables normal printk support. Removing it
440 eliminates most of the message strings from the kernel image
441 and makes the kernel more or less silent. As this makes it
442 very difficult to diagnose system problems, saying N here is
443 strongly discouraged.
444
Matt Mackallc8538a72005-05-01 08:59:01 -0700445config BUG
446 bool "BUG() support" if EMBEDDED
447 default y
448 help
449 Disabling this option eliminates support for BUG and WARN, reducing
450 the size of your kernel image and potentially quietly ignoring
451 numerous fatal conditions. You should only consider disabling this
452 option for embedded systems with no facilities for reporting errors.
453 Just say Y.
454
Matt Mackall708e9a72006-01-08 01:05:25 -0800455config ELF_CORE
456 default y
457 bool "Enable ELF core dumps" if EMBEDDED
458 help
459 Enable support for generating core dumps. Disabling saves about 4k.
460
Linus Torvalds1da177e2005-04-16 15:20:36 -0700461config BASE_FULL
462 default y
463 bool "Enable full-sized data structures for core" if EMBEDDED
464 help
465 Disabling this option reduces the size of miscellaneous core
466 kernel data structures. This saves memory on small machines,
467 but may reduce performance.
468
469config FUTEX
470 bool "Enable futex support" if EMBEDDED
471 default y
Ingo Molnar23f78d4a2006-06-27 02:54:53 -0700472 select RT_MUTEXES
Linus Torvalds1da177e2005-04-16 15:20:36 -0700473 help
474 Disabling this option will cause the kernel to be built without
475 support for "fast userspace mutexes". The resulting kernel may not
476 run glibc-based applications correctly.
477
478config EPOLL
479 bool "Enable eventpoll support" if EMBEDDED
480 default y
481 help
482 Disabling this option will cause the kernel to be built without
483 support for epoll family of system calls.
484
Linus Torvalds1da177e2005-04-16 15:20:36 -0700485config SHMEM
486 bool "Use full shmem filesystem" if EMBEDDED
487 default y
488 depends on MMU
489 help
490 The shmem is an internal filesystem used to manage shared memory.
491 It is backed by swap and manages resource limits. It is also exported
492 to userspace as tmpfs if TMPFS is enabled. Disabling this
493 option replaces shmem and tmpfs with the much simpler ramfs code,
494 which may be appropriate on small systems without swap.
495
Christoph Lameterf8891e52006-06-30 01:55:45 -0700496config VM_EVENT_COUNTERS
497 default y
498 bool "Enable VM event counters for /proc/vmstat" if EMBEDDED
499 help
Paul Jackson2aea4fb2006-12-22 01:06:10 -0800500 VM event counters are needed for event counts to be shown.
501 This option allows the disabling of the VM event counters
502 on EMBEDDED systems. /proc/vmstat will only show page counts
503 if VM event counters are disabled.
Christoph Lameterf8891e52006-06-30 01:55:45 -0700504
Christoph Lameter41ecc552007-05-09 02:32:44 -0700505config SLUB_DEBUG
506 default y
507 bool "Enable SLUB debugging support" if EMBEDDED
Christoph Lameterd4751a22007-05-10 03:15:40 -0700508 depends on SLUB
Christoph Lameter41ecc552007-05-09 02:32:44 -0700509 help
510 SLUB has extensive debug support features. Disabling these can
511 result in significant savings in code size. This also disables
512 SLUB sysfs support. /sys/slab will not exist and there will be
513 no support for cache validation etc.
514
Christoph Lameter81819f02007-05-06 14:49:36 -0700515choice
516 prompt "Choose SLAB allocator"
517 default SLAB
518 help
519 This option allows to select a slab allocator.
520
521config SLAB
522 bool "SLAB"
523 help
524 The regular slab allocator that is established and known to work
Christoph Lameter34013882007-05-09 02:32:47 -0700525 well in all environments. It organizes cache hot objects in
Christoph Lameter81819f02007-05-06 14:49:36 -0700526 per cpu and per node queues. SLAB is the default choice for
Christoph Lameter34013882007-05-09 02:32:47 -0700527 a slab allocator.
Christoph Lameter81819f02007-05-06 14:49:36 -0700528
529config SLUB
530 depends on EXPERIMENTAL && !ARCH_USES_SLAB_PAGE_STRUCT
531 bool "SLUB (Unqueued Allocator)"
532 help
533 SLUB is a slab allocator that minimizes cache line usage
534 instead of managing queues of cached objects (SLAB approach).
535 Per cpu caching is realized using slabs of objects instead
536 of queues of objects. SLUB can use memory efficiently
Christoph Lameter34013882007-05-09 02:32:47 -0700537 and has enhanced diagnostics.
Christoph Lameter81819f02007-05-06 14:49:36 -0700538
539config SLOB
540#
Christoph Lameter34013882007-05-09 02:32:47 -0700541# SLOB does not support SMP because SLAB_DESTROY_BY_RCU is unsupported
Christoph Lameter81819f02007-05-06 14:49:36 -0700542#
543 depends on EMBEDDED && !SMP && !SPARSEMEM
544 bool "SLOB (Simple Allocator)"
545 help
546 SLOB replaces the SLAB allocator with a drastically simpler
547 allocator. SLOB is more space efficient that SLAB but does not
Christoph Lameter34013882007-05-09 02:32:47 -0700548 scale well (single lock for all operations) and is also highly
549 susceptible to fragmentation. SLUB can accomplish a higher object
550 density. It is usually better to use SLUB instead of SLOB.
Christoph Lameter81819f02007-05-06 14:49:36 -0700551
552endchoice
553
Linus Torvalds1da177e2005-04-16 15:20:36 -0700554endmenu # General setup
555
Chuck Ebbertae81f9e2006-09-16 12:15:53 -0700556config RT_MUTEXES
557 boolean
558 select PLIST
559
Linus Torvalds1da177e2005-04-16 15:20:36 -0700560config TINY_SHMEM
561 default !SHMEM
562 bool
563
564config BASE_SMALL
565 int
566 default 0 if BASE_FULL
567 default 1 if !BASE_FULL
568
569menu "Loadable module support"
570
571config MODULES
572 bool "Enable loadable module support"
573 help
574 Kernel modules are small pieces of compiled code which can
575 be inserted in the running kernel, rather than being
576 permanently built into the kernel. You use the "modprobe"
577 tool to add (and sometimes remove) them. If you say Y here,
578 many parts of the kernel can be built as modules (by
579 answering M instead of Y where indicated): this is most
580 useful for infrequently used options which are not required
581 for booting. For more information, see the man pages for
582 modprobe, lsmod, modinfo, insmod and rmmod.
583
584 If you say Y here, you will need to run "make
585 modules_install" to put the modules under /lib/modules/
586 where modprobe can find them (you may need to be root to do
587 this).
588
589 If unsure, say Y.
590
591config MODULE_UNLOAD
592 bool "Module unloading"
593 depends on MODULES
594 help
595 Without this option you will not be able to unload any
596 modules (note that some modules may not be unloadable
597 anyway), which makes your kernel slightly smaller and
598 simpler. If unsure, say Y.
599
600config MODULE_FORCE_UNLOAD
601 bool "Forced module unloading"
602 depends on MODULE_UNLOAD && EXPERIMENTAL
603 help
604 This option allows you to force a module to unload, even if the
605 kernel believes it is unsafe: the kernel will remove the module
606 without waiting for anyone to stop using it (using the -f option to
607 rmmod). This is mainly for kernel developers and desperate users.
608 If unsure, say N.
609
Linus Torvalds1da177e2005-04-16 15:20:36 -0700610config MODVERSIONS
Sam Ravnborg0d541642005-12-26 23:04:02 +0100611 bool "Module versioning support"
612 depends on MODULES
Linus Torvalds1da177e2005-04-16 15:20:36 -0700613 help
614 Usually, you have to use modules compiled with your kernel.
615 Saying Y here makes it sometimes possible to use modules
616 compiled for different kernels, by adding enough information
617 to the modules to (hopefully) spot any changes which would
618 make them incompatible with the kernel you are running. If
619 unsure, say N.
620
621config MODULE_SRCVERSION_ALL
622 bool "Source checksum for all modules"
623 depends on MODULES
624 help
625 Modules which contain a MODULE_VERSION get an extra "srcversion"
626 field inserted into their modinfo section, which contains a
627 sum of the source files which made it. This helps maintainers
628 see exactly which source was used to build a module (since
629 others sometimes change the module source without updating
630 the version). With this option, such a "srcversion" field
631 will be created for all modules. If unsure, say N.
632
633config KMOD
634 bool "Automatic kernel module loading"
635 depends on MODULES
636 help
637 Normally when you have selected some parts of the kernel to
638 be created as kernel modules, you must load them (using the
639 "modprobe" command) before you can use them. If you say Y
640 here, some parts of the kernel will be able to load modules
641 automatically: when a part of the kernel needs a module, it
642 runs modprobe with the appropriate arguments, thereby
643 loading the module if it is available. If unsure, say Y.
644
645config STOP_MACHINE
646 bool
647 default y
648 depends on (SMP && MODULE_UNLOAD) || HOTPLUG_CPU
649 help
650 Need stop_machine() primitive.
651endmenu
Jens Axboe3a65dfe2005-11-04 08:43:35 +0100652
653menu "Block layer"
654source "block/Kconfig"
655endmenu