Preempt-RCU: implementation
[sfrench/cifs-2.6.git] / init / Kconfig
1 config DEFCONFIG_LIST
2         string
3         depends on !UML
4         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
10 menu "General setup"
11
12 config 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
43 config BROKEN
44         bool
45
46 config BROKEN_ON_SMP
47         bool
48         depends on BROKEN || !SMP
49         default y
50
51 config LOCK_KERNEL
52         bool
53         depends on SMP || PREEMPT
54         default y
55
56 config INIT_ENV_ARG_LIMIT
57         int
58         default 32 if !UML
59         default 128 if UML
60         help
61           Maximum of each of the number of arguments and environment
62           variables passed to init from the kernel command line.
63
64
65 config LOCALVERSION
66         string "Local version - append to kernel release"
67         help
68           Append an extra string to the end of your kernel version.
69           This will show up when you type uname, for example.
70           The string you set here will be appended after the contents of
71           any files with a filename matching localversion* in your
72           object and source tree, in that order.  Your total string can
73           be a maximum of 64 characters.
74
75 config LOCALVERSION_AUTO
76         bool "Automatically append version information to the version string"
77         default y
78         help
79           This will try to automatically determine if the current tree is a
80           release tree by looking for git tags that belong to the current
81           top of tree revision.
82
83           A string of the format -gxxxxxxxx will be added to the localversion
84           if a git-based tree is found.  The string generated by this will be
85           appended after any matching localversion* files, and after the value
86           set in CONFIG_LOCALVERSION.
87
88           (The actual string used here is the first eight characters produced
89           by running the command:
90
91             $ git rev-parse --verify HEAD
92
93           which is done within the script "scripts/setlocalversion".)
94
95 config SWAP
96         bool "Support for paging of anonymous memory (swap)"
97         depends on MMU && BLOCK
98         default y
99         help
100           This option allows you to choose whether you want to have support
101           for so called swap devices or swap files in your kernel that are
102           used to provide more virtual memory than the actual RAM present
103           in your computer.  If unsure say Y.
104
105 config SYSVIPC
106         bool "System V IPC"
107         ---help---
108           Inter Process Communication is a suite of library functions and
109           system calls which let processes (running programs) synchronize and
110           exchange information. It is generally considered to be a good thing,
111           and some programs won't run unless you say Y here. In particular, if
112           you want to run the DOS emulator dosemu under Linux (read the
113           DOSEMU-HOWTO, available from <http://www.tldp.org/docs.html#howto>),
114           you'll need to say Y here.
115
116           You can find documentation about IPC with "info ipc" and also in
117           section 6.4 of the Linux Programmer's Guide, available from
118           <http://www.tldp.org/guides.html>.
119
120 config SYSVIPC_SYSCTL
121         bool
122         depends on SYSVIPC
123         depends on SYSCTL
124         default y
125
126 config POSIX_MQUEUE
127         bool "POSIX Message Queues"
128         depends on NET && EXPERIMENTAL
129         ---help---
130           POSIX variant of message queues is a part of IPC. In POSIX message
131           queues every message has a priority which decides about succession
132           of receiving it by a process. If you want to compile and run
133           programs written e.g. for Solaris with use of its POSIX message
134           queues (functions mq_*) say Y here.
135
136           POSIX message queues are visible as a filesystem called 'mqueue'
137           and can be mounted somewhere if you want to do filesystem
138           operations on message queues.
139
140           If unsure, say Y.
141
142 config BSD_PROCESS_ACCT
143         bool "BSD Process Accounting"
144         help
145           If you say Y here, a user level program will be able to instruct the
146           kernel (via a special system call) to write process accounting
147           information to a file: whenever a process exits, information about
148           that process will be appended to the file by the kernel.  The
149           information includes things such as creation time, owning user,
150           command name, memory usage, controlling terminal etc. (the complete
151           list is in the struct acct in <file:include/linux/acct.h>).  It is
152           up to the user level program to do useful things with this
153           information.  This is generally a good idea, so say Y.
154
155 config BSD_PROCESS_ACCT_V3
156         bool "BSD Process Accounting version 3 file format"
157         depends on BSD_PROCESS_ACCT
158         default n
159         help
160           If you say Y here, the process accounting information is written
161           in a new file format that also logs the process IDs of each
162           process and it's parent. Note that this file format is incompatible
163           with previous v0/v1/v2 file formats, so you will need updated tools
164           for processing it. A preliminary version of these tools is available
165           at <http://www.physik3.uni-rostock.de/tim/kernel/utils/acct/>.
166
167 config TASKSTATS
168         bool "Export task/process statistics through netlink (EXPERIMENTAL)"
169         depends on NET
170         default n
171         help
172           Export selected statistics for tasks/processes through the
173           generic netlink interface. Unlike BSD process accounting, the
174           statistics are available during the lifetime of tasks/processes as
175           responses to commands. Like BSD accounting, they are sent to user
176           space on task exit.
177
178           Say N if unsure.
179
180 config TASK_DELAY_ACCT
181         bool "Enable per-task delay accounting (EXPERIMENTAL)"
182         depends on TASKSTATS
183         help
184           Collect information on time spent by a task waiting for system
185           resources like cpu, synchronous block I/O completion and swapping
186           in pages. Such statistics can help in setting a task's priorities
187           relative to other tasks for cpu, io, rss limits etc.
188
189           Say N if unsure.
190
191 config TASK_XACCT
192         bool "Enable extended accounting over taskstats (EXPERIMENTAL)"
193         depends on TASKSTATS
194         help
195           Collect extended task accounting data and send the data
196           to userland for processing over the taskstats interface.
197
198           Say N if unsure.
199
200 config TASK_IO_ACCOUNTING
201         bool "Enable per-task storage I/O accounting (EXPERIMENTAL)"
202         depends on TASK_XACCT
203         help
204           Collect information on the number of bytes of storage I/O which this
205           task has caused.
206
207           Say N if unsure.
208
209 config USER_NS
210         bool "User Namespaces (EXPERIMENTAL)"
211         default n
212         depends on EXPERIMENTAL
213         help
214           Support user namespaces.  This allows containers, i.e.
215           vservers, to use user namespaces to provide different
216           user info for different servers.  If unsure, say N.
217
218 config PID_NS
219         bool "PID Namespaces (EXPERIMENTAL)"
220         default n
221         depends on EXPERIMENTAL
222         help
223           Suport process id namespaces.  This allows having multiple
224           process with the same pid as long as they are in different
225           pid namespaces.  This is a building block of containers.
226
227           Unless you want to work with an experimental feature
228           say N here.
229
230 config AUDIT
231         bool "Auditing support"
232         depends on NET
233         help
234           Enable auditing infrastructure that can be used with another
235           kernel subsystem, such as SELinux (which requires this for
236           logging of avc messages output).  Does not do system-call
237           auditing without CONFIG_AUDITSYSCALL.
238
239 config AUDITSYSCALL
240         bool "Enable system-call auditing support"
241         depends on AUDIT && (X86 || PPC || PPC64 || S390 || IA64 || UML || SPARC64)
242         default y if SECURITY_SELINUX
243         help
244           Enable low-overhead system-call auditing infrastructure that
245           can be used independently or with another kernel subsystem,
246           such as SELinux.  To use audit's filesystem watch feature, please
247           ensure that INOTIFY is configured.
248
249 config AUDIT_TREE
250         def_bool y
251         depends on AUDITSYSCALL && INOTIFY
252
253 config IKCONFIG
254         tristate "Kernel .config support"
255         ---help---
256           This option enables the complete Linux kernel ".config" file
257           contents to be saved in the kernel. It provides documentation
258           of which kernel options are used in a running kernel or in an
259           on-disk kernel.  This information can be extracted from the kernel
260           image file with the script scripts/extract-ikconfig and used as
261           input to rebuild the current kernel or to build another kernel.
262           It can also be extracted from a running kernel by reading
263           /proc/config.gz if enabled (below).
264
265 config IKCONFIG_PROC
266         bool "Enable access to .config through /proc/config.gz"
267         depends on IKCONFIG && PROC_FS
268         ---help---
269           This option enables access to the kernel configuration file
270           through /proc/config.gz.
271
272 config LOG_BUF_SHIFT
273         int "Kernel log buffer size (16 => 64KB, 17 => 128KB)"
274         range 12 21
275         default 17 if S390 || LOCKDEP
276         default 16 if X86_NUMAQ || IA64
277         default 15 if SMP
278         default 14
279         help
280           Select kernel log buffer size as a power of 2.
281           Defaults and Examples:
282                      17 => 128 KB for S/390
283                      16 => 64 KB for x86 NUMAQ or IA-64
284                      15 => 32 KB for SMP
285                      14 => 16 KB for uniprocessor
286                      13 =>  8 KB
287                      12 =>  4 KB
288
289 config CGROUPS
290         bool "Control Group support"
291         help
292           This option will let you use process cgroup subsystems
293           such as Cpusets
294
295           Say N if unsure.
296
297 config CGROUP_DEBUG
298         bool "Example debug cgroup subsystem"
299         depends on CGROUPS
300         help
301           This option enables a simple cgroup subsystem that
302           exports useful debugging information about the cgroups
303           framework
304
305           Say N if unsure
306
307 config CGROUP_NS
308         bool "Namespace cgroup subsystem"
309         depends on CGROUPS
310         help
311           Provides a simple namespace cgroup subsystem to
312           provide hierarchical naming of sets of namespaces,
313           for instance virtual servers and checkpoint/restart
314           jobs.
315
316 config CPUSETS
317         bool "Cpuset support"
318         depends on SMP && CGROUPS
319         help
320           This option will let you create and manage CPUSETs which
321           allow dynamically partitioning a system into sets of CPUs and
322           Memory Nodes and assigning tasks to run only within those sets.
323           This is primarily useful on large SMP or NUMA systems.
324
325           Say N if unsure.
326
327 config FAIR_GROUP_SCHED
328         bool "Fair group CPU scheduler"
329         default y
330         help
331           This feature lets CPU scheduler recognize task groups and control CPU
332           bandwidth allocation to such task groups.
333
334 choice
335         depends on FAIR_GROUP_SCHED
336         prompt "Basis for grouping tasks"
337         default FAIR_USER_SCHED
338
339 config FAIR_USER_SCHED
340         bool "user id"
341         help
342           This option will choose userid as the basis for grouping
343           tasks, thus providing equal CPU bandwidth to each user.
344
345 config FAIR_CGROUP_SCHED
346         bool "Control groups"
347         depends on CGROUPS
348         help
349           This option allows you to create arbitrary task groups
350           using the "cgroup" pseudo filesystem and control
351           the cpu bandwidth allocated to each such task group.
352           Refer to Documentation/cgroups.txt for more information
353           on "cgroup" pseudo filesystem.
354
355 endchoice
356
357 config CGROUP_CPUACCT
358         bool "Simple CPU accounting cgroup subsystem"
359         depends on CGROUPS
360         help
361           Provides a simple Resource Controller for monitoring the
362           total CPU consumed by the tasks in a cgroup
363
364 config SYSFS_DEPRECATED
365         bool "Create deprecated sysfs files"
366         depends on SYSFS
367         default y
368         help
369           This option creates deprecated symlinks such as the
370           "device"-link, the <subsystem>:<name>-link, and the
371           "bus"-link. It may also add deprecated key in the
372           uevent environment.
373           None of these features or values should be used today, as
374           they export driver core implementation details to userspace
375           or export properties which can't be kept stable across kernel
376           releases.
377
378           If enabled, this option will also move any device structures
379           that belong to a class, back into the /sys/class hierarchy, in
380           order to support older versions of udev.
381
382           If you are using a distro that was released in 2006 or later,
383           it should be safe to say N here.
384
385 config PROC_PID_CPUSET
386         bool "Include legacy /proc/<pid>/cpuset file"
387         depends on CPUSETS
388         default y
389
390 config RELAY
391         bool "Kernel->user space relay support (formerly relayfs)"
392         help
393           This option enables support for relay interface support in
394           certain file systems (such as debugfs).
395           It is designed to provide an efficient mechanism for tools and
396           facilities to relay large amounts of data from kernel space to
397           user space.
398
399           If unsure, say N.
400
401 config BLK_DEV_INITRD
402         bool "Initial RAM filesystem and RAM disk (initramfs/initrd) support"
403         depends on BROKEN || !FRV
404         help
405           The initial RAM filesystem is a ramfs which is loaded by the
406           boot loader (loadlin or lilo) and that is mounted as root
407           before the normal boot procedure. It is typically used to
408           load modules needed to mount the "real" root file system,
409           etc. See <file:Documentation/initrd.txt> for details.
410
411           If RAM disk support (BLK_DEV_RAM) is also included, this
412           also enables initial RAM disk (initrd) support and adds
413           15 Kbytes (more on some other architectures) to the kernel size.
414
415           If unsure say Y.
416
417 if BLK_DEV_INITRD
418
419 source "usr/Kconfig"
420
421 endif
422
423 config CC_OPTIMIZE_FOR_SIZE
424         bool "Optimize for size (Look out for broken compilers!)"
425         default y
426         depends on ARM || H8300 || SUPERH || EXPERIMENTAL
427         help
428           Enabling this option will pass "-Os" instead of "-O2" to gcc
429           resulting in a smaller kernel.
430
431           WARNING: some versions of gcc may generate incorrect code with this
432           option.  If problems are observed, a gcc upgrade may be needed.
433
434           If unsure, say N.
435
436 config SYSCTL
437         bool
438
439 menuconfig EMBEDDED
440         bool "Configure standard kernel features (for small systems)"
441         help
442           This option allows certain base kernel options and settings
443           to be disabled or tweaked. This is for specialized
444           environments which can tolerate a "non-standard" kernel.
445           Only use this if you really know what you are doing.
446
447 config UID16
448         bool "Enable 16-bit UID system calls" if EMBEDDED
449         depends on ARM || BLACKFIN || CRIS || FRV || H8300 || X86_32 || M68K || (S390 && !64BIT) || SUPERH || SPARC32 || (SPARC64 && SPARC32_COMPAT) || UML || (X86_64 && IA32_EMULATION)
450         default y
451         help
452           This enables the legacy 16-bit UID syscall wrappers.
453
454 config SYSCTL_SYSCALL
455         bool "Sysctl syscall support" if EMBEDDED
456         default y
457         select SYSCTL
458         ---help---
459           sys_sysctl uses binary paths that have been found challenging
460           to properly maintain and use.  The interface in /proc/sys
461           using paths with ascii names is now the primary path to this
462           information.
463
464           Almost nothing using the binary sysctl interface so if you are
465           trying to save some space it is probably safe to disable this,
466           making your kernel marginally smaller.
467
468           If unsure say Y here.
469
470 config KALLSYMS
471          bool "Load all symbols for debugging/ksymoops" if EMBEDDED
472          default y
473          help
474            Say Y here to let the kernel print out symbolic crash information and
475            symbolic stack backtraces. This increases the size of the kernel
476            somewhat, as all symbols have to be loaded into the kernel image.
477
478 config KALLSYMS_ALL
479         bool "Include all symbols in kallsyms"
480         depends on DEBUG_KERNEL && KALLSYMS
481         help
482            Normally kallsyms only contains the symbols of functions, for nicer
483            OOPS messages.  Some debuggers can use kallsyms for other
484            symbols too: say Y here to include all symbols, if you need them 
485            and you don't care about adding 300k to the size of your kernel.
486
487            Say N.
488
489 config KALLSYMS_EXTRA_PASS
490         bool "Do an extra kallsyms pass"
491         depends on KALLSYMS
492         help
493            If kallsyms is not working correctly, the build will fail with
494            inconsistent kallsyms data.  If that occurs, log a bug report and
495            turn on KALLSYMS_EXTRA_PASS which should result in a stable build.
496            Always say N here unless you find a bug in kallsyms, which must be
497            reported.  KALLSYMS_EXTRA_PASS is only a temporary workaround while
498            you wait for kallsyms to be fixed.
499
500
501 config HOTPLUG
502         bool "Support for hot-pluggable devices" if EMBEDDED
503         default y
504         help
505           This option is provided for the case where no hotplug or uevent
506           capabilities is wanted by the kernel.  You should only consider
507           disabling this option for embedded systems that do not use modules, a
508           dynamic /dev tree, or dynamic device discovery.  Just say Y.
509
510 config PRINTK
511         default y
512         bool "Enable support for printk" if EMBEDDED
513         help
514           This option enables normal printk support. Removing it
515           eliminates most of the message strings from the kernel image
516           and makes the kernel more or less silent. As this makes it
517           very difficult to diagnose system problems, saying N here is
518           strongly discouraged.
519
520 config BUG
521         bool "BUG() support" if EMBEDDED
522         default y
523         help
524           Disabling this option eliminates support for BUG and WARN, reducing
525           the size of your kernel image and potentially quietly ignoring
526           numerous fatal conditions. You should only consider disabling this
527           option for embedded systems with no facilities for reporting errors.
528           Just say Y.
529
530 config ELF_CORE
531         default y
532         bool "Enable ELF core dumps" if EMBEDDED
533         help
534           Enable support for generating core dumps. Disabling saves about 4k.
535
536 config BASE_FULL
537         default y
538         bool "Enable full-sized data structures for core" if EMBEDDED
539         help
540           Disabling this option reduces the size of miscellaneous core
541           kernel data structures. This saves memory on small machines,
542           but may reduce performance.
543
544 config FUTEX
545         bool "Enable futex support" if EMBEDDED
546         default y
547         select RT_MUTEXES
548         help
549           Disabling this option will cause the kernel to be built without
550           support for "fast userspace mutexes".  The resulting kernel may not
551           run glibc-based applications correctly.
552
553 config ANON_INODES
554         bool
555
556 config EPOLL
557         bool "Enable eventpoll support" if EMBEDDED
558         default y
559         select ANON_INODES
560         help
561           Disabling this option will cause the kernel to be built without
562           support for epoll family of system calls.
563
564 config SIGNALFD
565         bool "Enable signalfd() system call" if EMBEDDED
566         select ANON_INODES
567         default y
568         help
569           Enable the signalfd() system call that allows to receive signals
570           on a file descriptor.
571
572           If unsure, say Y.
573
574 config TIMERFD
575         bool "Enable timerfd() system call" if EMBEDDED
576         select ANON_INODES
577         depends on BROKEN
578         default y
579         help
580           Enable the timerfd() system call that allows to receive timer
581           events on a file descriptor.
582
583           If unsure, say Y.
584
585 config EVENTFD
586         bool "Enable eventfd() system call" if EMBEDDED
587         select ANON_INODES
588         default y
589         help
590           Enable the eventfd() system call that allows to receive both
591           kernel notification (ie. KAIO) or userspace notifications.
592
593           If unsure, say Y.
594
595 config SHMEM
596         bool "Use full shmem filesystem" if EMBEDDED
597         default y
598         depends on MMU
599         help
600           The shmem is an internal filesystem used to manage shared memory.
601           It is backed by swap and manages resource limits. It is also exported
602           to userspace as tmpfs if TMPFS is enabled. Disabling this
603           option replaces shmem and tmpfs with the much simpler ramfs code,
604           which may be appropriate on small systems without swap.
605
606 config VM_EVENT_COUNTERS
607         default y
608         bool "Enable VM event counters for /proc/vmstat" if EMBEDDED
609         help
610           VM event counters are needed for event counts to be shown.
611           This option allows the disabling of the VM event counters
612           on EMBEDDED systems.  /proc/vmstat will only show page counts
613           if VM event counters are disabled.
614
615 config SLUB_DEBUG
616         default y
617         bool "Enable SLUB debugging support" if EMBEDDED
618         depends on SLUB
619         help
620           SLUB has extensive debug support features. Disabling these can
621           result in significant savings in code size. This also disables
622           SLUB sysfs support. /sys/slab will not exist and there will be
623           no support for cache validation etc.
624
625 choice
626         prompt "Choose SLAB allocator"
627         default SLUB
628         help
629            This option allows to select a slab allocator.
630
631 config SLAB
632         bool "SLAB"
633         help
634           The regular slab allocator that is established and known to work
635           well in all environments. It organizes cache hot objects in
636           per cpu and per node queues. SLAB is the default choice for
637           a slab allocator.
638
639 config SLUB
640         bool "SLUB (Unqueued Allocator)"
641         help
642            SLUB is a slab allocator that minimizes cache line usage
643            instead of managing queues of cached objects (SLAB approach).
644            Per cpu caching is realized using slabs of objects instead
645            of queues of objects. SLUB can use memory efficiently
646            and has enhanced diagnostics.
647
648 config SLOB
649         depends on EMBEDDED
650         bool "SLOB (Simple Allocator)"
651         help
652            SLOB replaces the SLAB allocator with a drastically simpler
653            allocator.  SLOB is more space efficient than SLAB but does not
654            scale well (single lock for all operations) and is also highly
655            susceptible to fragmentation. SLUB can accomplish a higher object
656            density. It is usually better to use SLUB instead of SLOB.
657
658 endchoice
659
660 endmenu         # General setup
661
662 config SLABINFO
663         bool
664         depends on PROC_FS
665         depends on SLAB || SLUB
666         default y
667
668 config RT_MUTEXES
669         boolean
670         select PLIST
671
672 config TINY_SHMEM
673         default !SHMEM
674         bool
675
676 config BASE_SMALL
677         int
678         default 0 if BASE_FULL
679         default 1 if !BASE_FULL
680
681 menuconfig MODULES
682         bool "Enable loadable module support"
683         help
684           Kernel modules are small pieces of compiled code which can
685           be inserted in the running kernel, rather than being
686           permanently built into the kernel.  You use the "modprobe"
687           tool to add (and sometimes remove) them.  If you say Y here,
688           many parts of the kernel can be built as modules (by
689           answering M instead of Y where indicated): this is most
690           useful for infrequently used options which are not required
691           for booting.  For more information, see the man pages for
692           modprobe, lsmod, modinfo, insmod and rmmod.
693
694           If you say Y here, you will need to run "make
695           modules_install" to put the modules under /lib/modules/
696           where modprobe can find them (you may need to be root to do
697           this).
698
699           If unsure, say Y.
700
701 config MODULE_UNLOAD
702         bool "Module unloading"
703         depends on MODULES
704         help
705           Without this option you will not be able to unload any
706           modules (note that some modules may not be unloadable
707           anyway), which makes your kernel slightly smaller and
708           simpler.  If unsure, say Y.
709
710 config MODULE_FORCE_UNLOAD
711         bool "Forced module unloading"
712         depends on MODULE_UNLOAD && EXPERIMENTAL
713         help
714           This option allows you to force a module to unload, even if the
715           kernel believes it is unsafe: the kernel will remove the module
716           without waiting for anyone to stop using it (using the -f option to
717           rmmod).  This is mainly for kernel developers and desperate users.
718           If unsure, say N.
719
720 config MODVERSIONS
721         bool "Module versioning support"
722         depends on MODULES
723         help
724           Usually, you have to use modules compiled with your kernel.
725           Saying Y here makes it sometimes possible to use modules
726           compiled for different kernels, by adding enough information
727           to the modules to (hopefully) spot any changes which would
728           make them incompatible with the kernel you are running.  If
729           unsure, say N.
730
731 config MODULE_SRCVERSION_ALL
732         bool "Source checksum for all modules"
733         depends on MODULES
734         help
735           Modules which contain a MODULE_VERSION get an extra "srcversion"
736           field inserted into their modinfo section, which contains a
737           sum of the source files which made it.  This helps maintainers
738           see exactly which source was used to build a module (since
739           others sometimes change the module source without updating
740           the version).  With this option, such a "srcversion" field
741           will be created for all modules.  If unsure, say N.
742
743 config KMOD
744         bool "Automatic kernel module loading"
745         depends on MODULES
746         help
747           Normally when you have selected some parts of the kernel to
748           be created as kernel modules, you must load them (using the
749           "modprobe" command) before you can use them. If you say Y
750           here, some parts of the kernel will be able to load modules
751           automatically: when a part of the kernel needs a module, it
752           runs modprobe with the appropriate arguments, thereby
753           loading the module if it is available.  If unsure, say Y.
754
755 config STOP_MACHINE
756         bool
757         default y
758         depends on (SMP && MODULE_UNLOAD) || HOTPLUG_CPU
759         help
760           Need stop_machine() primitive.
761
762 source "block/Kconfig"
763
764 config PREEMPT_NOTIFIERS
765         bool
766
767 choice
768         prompt "RCU implementation type:"
769         default CLASSIC_RCU
770
771 config CLASSIC_RCU
772         bool "Classic RCU"
773         help
774           This option selects the classic RCU implementation that is
775           designed for best read-side performance on non-realtime
776           systems.
777
778           Say Y if you are unsure.
779
780 config PREEMPT_RCU
781         bool "Preemptible RCU"
782         depends on PREEMPT
783         help
784           This option reduces the latency of the kernel by making certain
785           RCU sections preemptible. Normally RCU code is non-preemptible, if
786           this option is selected then read-only RCU sections become
787           preemptible. This helps latency, but may expose bugs due to
788           now-naive assumptions about each RCU read-side critical section
789           remaining on a given CPU through its execution.
790
791           Say N if you are unsure.
792
793 endchoice