signal/timer/event: signalfd core
[safe/jmp/linux-2.6] / init / Kconfig
index 8b7abae..db70720 100644 (file)
@@ -1,3 +1,12 @@
+config DEFCONFIG_LIST
+       string
+       depends on !UML
+       option defconfig_list
+       default "/lib/modules/$UNAME_RELEASE/.config"
+       default "/etc/kernel-config"
+       default "/boot/config-$UNAME_RELEASE"
+       default "arch/$ARCH/defconfig"
+
 menu "Code maturity level options"
 
 config EXPERIMENTAL
@@ -46,8 +55,8 @@ config LOCK_KERNEL
 
 config INIT_ENV_ARG_LIMIT
        int
-       default 32 if !USERMODE
-       default 128 if USERMODE
+       default 32 if !UML
+       default 128 if UML
        help
          Maximum of each of the number of arguments and environment
          variables passed to init from the kernel command line.
@@ -71,20 +80,24 @@ config LOCALVERSION_AUTO
        default y
        help
          This will try to automatically determine if the current tree is a
-         release tree by looking for git tags that
-         belong to the current top of tree revision.
+         release tree by looking for git tags that belong to the current
+         top of tree revision.
 
          A string of the format -gxxxxxxxx will be added to the localversion
-         if a git based tree is found.  The string generated by this will be
+         if a git-based tree is found.  The string generated by this will be
          appended after any matching localversion* files, and after the value
-         set in CONFIG_LOCALVERSION
+         set in CONFIG_LOCALVERSION.
+
+         (The actual string used here is the first eight characters produced
+         by running the command:
+
+           $ git rev-parse --verify HEAD
 
-         Note: This requires Perl, and a git repository, but not necessarily
-         the git or cogito tools to be installed.
+         which is done within the script "scripts/setlocalversion".)
 
 config SWAP
        bool "Support for paging of anonymous memory (swap)"
-       depends on MMU
+       depends on MMU && BLOCK
        default y
        help
          This option allows you to choose whether you want to have support
@@ -107,6 +120,21 @@ config SYSVIPC
          section 6.4 of the Linux Programmer's Guide, available from
          <http://www.tldp.org/guides.html>.
 
+config IPC_NS
+       bool "IPC Namespaces"
+       depends on SYSVIPC
+       default n
+       help
+         Support ipc namespaces.  This allows containers, i.e. virtual
+         environments, to use ipc namespaces to provide different ipc
+         objects for different servers.  If unsure, say N.
+
+config SYSVIPC_SYSCTL
+       bool
+       depends on SYSVIPC
+       depends on SYSCTL
+       default y
+
 config POSIX_MQUEUE
        bool "POSIX Message Queues"
        depends on NET && EXPERIMENTAL
@@ -115,9 +143,7 @@ config POSIX_MQUEUE
          queues every message has a priority which decides about succession
          of receiving it by a process. If you want to compile and run
          programs written e.g. for Solaris with use of its POSIX message
-         queues (functions mq_*) say Y here. To use this feature you will
-         also need mqueue library, available from
-         <http://www.mat.uni.torun.pl/~wrona/posix_ipc/>
+         queues (functions mq_*) say Y here.
 
          POSIX message queues are visible as a filesystem called 'mqueue'
          and can be mounted somewhere if you want to do filesystem
@@ -150,26 +176,59 @@ config BSD_PROCESS_ACCT_V3
          for processing it. A preliminary version of these tools is available
          at <http://www.physik3.uni-rostock.de/tim/kernel/utils/acct/>.
 
-config SYSCTL
-       bool "Sysctl support"
-       ---help---
-         The sysctl interface provides a means of dynamically changing
-         certain kernel parameters and variables on the fly without requiring
-         a recompile of the kernel or reboot of the system.  The primary
-         interface consists of a system call, but if you say Y to "/proc
-         file system support", a tree of modifiable sysctl entries will be
-         generated beneath the /proc/sys directory. They are explained in the
-         files in <file:Documentation/sysctl/>.  Note that enabling this
-         option will enlarge the kernel by at least 8 KB.
-
-         As it is generally a good thing, you should say Y here unless
-         building a kernel for install/rescue disks or your system is very
-         limited in memory.
+config TASKSTATS
+       bool "Export task/process statistics through netlink (EXPERIMENTAL)"
+       depends on NET
+       default n
+       help
+         Export selected statistics for tasks/processes through the
+         generic netlink interface. Unlike BSD process accounting, the
+         statistics are available during the lifetime of tasks/processes as
+         responses to commands. Like BSD accounting, they are sent to user
+         space on task exit.
+
+         Say N if unsure.
+
+config TASK_DELAY_ACCT
+       bool "Enable per-task delay accounting (EXPERIMENTAL)"
+       depends on TASKSTATS
+       help
+         Collect information on time spent by a task waiting for system
+         resources like cpu, synchronous block I/O completion and swapping
+         in pages. Such statistics can help in setting a task's priorities
+         relative to other tasks for cpu, io, rss limits etc.
+
+         Say N if unsure.
+
+config TASK_XACCT
+       bool "Enable extended accounting over taskstats (EXPERIMENTAL)"
+       depends on TASKSTATS
+       help
+         Collect extended task accounting data and send the data
+         to userland for processing over the taskstats interface.
+
+         Say N if unsure.
+
+config TASK_IO_ACCOUNTING
+       bool "Enable per-task storage I/O accounting (EXPERIMENTAL)"
+       depends on TASK_XACCT
+       help
+         Collect information on the number of bytes of storage I/O which this
+         task has caused.
+
+         Say N if unsure.
+
+config UTS_NS
+       bool "UTS Namespaces"
+       default n
+       help
+         Support uts namespaces.  This allows containers, i.e.
+         vservers, to use uts namespaces to provide different
+         uts info for different servers.  If unsure, say N.
 
 config AUDIT
        bool "Auditing support"
        depends on NET
-       default y if SECURITY_SELINUX
        help
          Enable auditing infrastructure that can be used with another
          kernel subsystem, such as SELinux (which requires this for
@@ -183,10 +242,11 @@ config AUDITSYSCALL
        help
          Enable low-overhead system-call auditing infrastructure that
          can be used independently or with another kernel subsystem,
-         such as SELinux.
+         such as SELinux.  To use audit's filesystem watch feature, please
+         ensure that INOTIFY is configured.
 
 config IKCONFIG
-       bool "Kernel .config support"
+       tristate "Kernel .config support"
        ---help---
          This option enables the complete Linux kernel ".config" file
          contents to be saved in the kernel. It provides documentation
@@ -204,6 +264,23 @@ config IKCONFIG_PROC
          This option enables access to the kernel configuration file
          through /proc/config.gz.
 
+config LOG_BUF_SHIFT
+       int "Kernel log buffer size (16 => 64KB, 17 => 128KB)"
+       range 12 21
+       default 17 if S390 || LOCKDEP
+       default 16 if X86_NUMAQ || IA64
+       default 15 if SMP
+       default 14
+       help
+         Select kernel log buffer size as a power of 2.
+         Defaults and Examples:
+                    17 => 128 KB for S/390
+                    16 => 64 KB for x86 NUMAQ or IA-64
+                    15 => 32 KB for SMP
+                    14 => 16 KB for uniprocessor
+                    13 =>  8 KB
+                    12 =>  4 KB
+
 config CPUSETS
        bool "Cpuset support"
        depends on SMP
@@ -215,24 +292,58 @@ config CPUSETS
 
          Say N if unsure.
 
-source "usr/Kconfig"
-
-config UID16
-       bool "Enable 16-bit UID system calls" if EMBEDDED
-       depends on ARM || CRIS || FRV || H8300 || X86_32 || M68K || (S390 && !64BIT) || SUPERH || SPARC32 || (SPARC64 && SPARC32_COMPAT) || UML || (X86_64 && IA32_EMULATION)
+config SYSFS_DEPRECATED
+       bool "Create deprecated sysfs files"
        default y
        help
-         This enables the legacy 16-bit UID syscall wrappers.
+         This option creates deprecated symlinks such as the
+         "device"-link, the <subsystem>:<name>-link, and the
+         "bus"-link. It may also add deprecated key in the
+         uevent environment.
+         None of these features or values should be used today, as
+         they export driver core implementation details to userspace
+         or export properties which can't be kept stable across kernel
+         releases.
 
-config VM86
-       depends X86
-       default y
-       bool "Enable VM86 support" if EMBEDDED
+         If enabled, this option will also move any device structures
+         that belong to a class, back into the /sys/class hierarchy, in
+         order to support older versions of udev.
+
+         If you are using a distro that was released in 2006 or later,
+         it should be safe to say N here.
+
+config RELAY
+       bool "Kernel->user space relay support (formerly relayfs)"
        help
-          This option is required by programs like DOSEMU to run 16-bit legacy
-         code on X86 processors. It also may be needed by software like
-          XFree86 to initialize some video cards via BIOS. Disabling this
-          option saves about 6k.
+         This option enables support for relay interface support in
+         certain file systems (such as debugfs).
+         It is designed to provide an efficient mechanism for tools and
+         facilities to relay large amounts of data from kernel space to
+         user space.
+
+         If unsure, say N.
+
+config BLK_DEV_INITRD
+       bool "Initial RAM filesystem and RAM disk (initramfs/initrd) support"
+       depends on BROKEN || !FRV
+       help
+         The initial RAM filesystem is a ramfs which is loaded by the
+         boot loader (loadlin or lilo) and that is mounted as root
+         before the normal boot procedure. It is typically used to
+         load modules needed to mount the "real" root file system,
+         etc. See <file:Documentation/initrd.txt> for details.
+
+         If RAM disk support (BLK_DEV_RAM) is also included, this
+         also enables initial RAM disk (initrd) support and adds
+         15 Kbytes (more on some other architectures) to the kernel size.
+
+         If unsure say Y.
+
+if BLK_DEV_INITRD
+
+source "usr/Kconfig"
+
+endif
 
 config CC_OPTIMIZE_FOR_SIZE
        bool "Optimize for size (Look out for broken compilers!)"
@@ -247,6 +358,9 @@ config CC_OPTIMIZE_FOR_SIZE
 
          If unsure, say N.
 
+config SYSCTL
+       bool
+
 menuconfig EMBEDDED
        bool "Configure standard kernel features (for small systems)"
        help
@@ -255,8 +369,31 @@ menuconfig EMBEDDED
           environments which can tolerate a "non-standard" kernel.
           Only use this if you really know what you are doing.
 
+config UID16
+       bool "Enable 16-bit UID system calls" if EMBEDDED
+       depends on ARM || BFIN || CRIS || FRV || H8300 || X86_32 || M68K || (S390 && !64BIT) || SUPERH || SPARC32 || (SPARC64 && SPARC32_COMPAT) || UML || (X86_64 && IA32_EMULATION)
+       default y
+       help
+         This enables the legacy 16-bit UID syscall wrappers.
+
+config SYSCTL_SYSCALL
+       bool "Sysctl syscall support" if EMBEDDED
+       default y
+       select SYSCTL
+       ---help---
+         sys_sysctl uses binary paths that have been found challenging
+         to properly maintain and use.  The interface in /proc/sys
+         using paths with ascii names is now the primary path to this
+         information.
+
+         Almost nothing using the binary sysctl interface so if you are
+         trying to save some space it is probably safe to disable this,
+         making your kernel marginally smaller.
+
+         If unsure say Y here.
+
 config KALLSYMS
-        bool "Load all symbols for debugging/kksymoops" if EMBEDDED
+        bool "Load all symbols for debugging/ksymoops" if EMBEDDED
         default y
         help
           Say Y here to let the kernel print out symbolic crash information and
@@ -332,18 +469,39 @@ config BASE_FULL
 config FUTEX
        bool "Enable futex support" if EMBEDDED
        default y
+       select RT_MUTEXES
        help
          Disabling this option will cause the kernel to be built without
          support for "fast userspace mutexes".  The resulting kernel may not
          run glibc-based applications correctly.
 
+config ANON_INODES
+       bool "Enable anonymous inode source" if EMBEDDED
+       default y
+       help
+         Anonymous inode source for pseudo-files like epoll, signalfd,
+         timerfd and eventfd.
+
+         If unsure, say Y.
+
 config EPOLL
        bool "Enable eventpoll support" if EMBEDDED
        default y
+       depends on ANON_INODES
        help
          Disabling this option will cause the kernel to be built without
          support for epoll family of system calls.
 
+config SIGNALFD
+       bool "Enable signalfd() system call" if EMBEDDED
+       depends on ANON_INODES
+       default y
+       help
+         Enable the signalfd() system call that allows to receive signals
+         on a file descriptor.
+
+         If unsure, say Y.
+
 config SHMEM
        bool "Use full shmem filesystem" if EMBEDDED
        default y
@@ -355,54 +513,70 @@ config SHMEM
          option replaces shmem and tmpfs with the much simpler ramfs code,
          which may be appropriate on small systems without swap.
 
-config CC_ALIGN_FUNCTIONS
-       int "Function alignment" if EMBEDDED
-       default 0
+config VM_EVENT_COUNTERS
+       default y
+       bool "Enable VM event counters for /proc/vmstat" if EMBEDDED
+       help
+         VM event counters are needed for event counts to be shown.
+         This option allows the disabling of the VM event counters
+         on EMBEDDED systems.  /proc/vmstat will only show page counts
+         if VM event counters are disabled.
+
+config SLUB_DEBUG
+       default y
+       bool "Enable SLUB debugging support" if EMBEDDED
+       depends on SLUB
        help
-         Align the start of functions to the next power-of-two greater than n,
-         skipping up to n bytes.  For instance, 32 aligns functions
-         to the next 32-byte boundary, but 24 would align to the next
-         32-byte boundary only if this can be done by skipping 23 bytes or less.
-         Zero means use compiler's default.
+         SLUB has extensive debug support features. Disabling these can
+         result in significant savings in code size. This also disables
+         SLUB sysfs support. /sys/slab will not exist and there will be
+         no support for cache validation etc.
 
-config CC_ALIGN_LABELS
-       int "Label alignment" if EMBEDDED
-       default 0
+choice
+       prompt "Choose SLAB allocator"
+       default SLAB
        help
-         Align all branch targets to a power-of-two boundary, skipping
-         up to n bytes like ALIGN_FUNCTIONS.  This option can easily
-         make code slower, because it must insert dummy operations for
-         when the branch target is reached in the usual flow of the code.
-         Zero means use compiler's default.
+          This option allows to select a slab allocator.
 
-config CC_ALIGN_LOOPS
-       int "Loop alignment" if EMBEDDED
-       default 0
+config SLAB
+       bool "SLAB"
        help
-         Align loops to a power-of-two boundary, skipping up to n bytes.
-         Zero means use compiler's default.
+         The regular slab allocator that is established and known to work
+         well in all environments. It organizes cache hot objects in
+         per cpu and per node queues. SLAB is the default choice for
+         a slab allocator.
 
-config CC_ALIGN_JUMPS
-       int "Jump alignment" if EMBEDDED
-       default 0
+config SLUB
+       depends on EXPERIMENTAL && !ARCH_USES_SLAB_PAGE_STRUCT
+       bool "SLUB (Unqueued Allocator)"
        help
-         Align branch targets to a power-of-two boundary, for branch
-         targets where the targets can only be reached by jumping,
-         skipping up to n bytes like ALIGN_FUNCTIONS.  In this case,
-         no dummy operations need be executed.
-         Zero means use compiler's default.
+          SLUB is a slab allocator that minimizes cache line usage
+          instead of managing queues of cached objects (SLAB approach).
+          Per cpu caching is realized using slabs of objects instead
+          of queues of objects. SLUB can use memory efficiently
+          and has enhanced diagnostics.
 
-config SLAB
-       default y
-       bool "Use full SLAB allocator" if EMBEDDED
+config SLOB
+#
+#      SLOB does not support SMP because SLAB_DESTROY_BY_RCU is unsupported
+#
+       depends on EMBEDDED && !SMP && !SPARSEMEM
+       bool "SLOB (Simple Allocator)"
        help
-         Disabling this replaces the advanced SLAB allocator and
-         kmalloc support with the drastically simpler SLOB allocator.
-         SLOB is more space efficient but does not scale well and is
-         more susceptible to fragmentation.
+          SLOB replaces the SLAB allocator with a drastically simpler
+          allocator.  SLOB is more space efficient that SLAB but does not
+          scale well (single lock for all operations) and is also highly
+          susceptible to fragmentation. SLUB can accomplish a higher object
+          density. It is usually better to use SLUB instead of SLOB.
+
+endchoice
 
 endmenu                # General setup
 
+config RT_MUTEXES
+       boolean
+       select PLIST
+
 config TINY_SHMEM
        default !SHMEM
        bool
@@ -412,13 +586,6 @@ config BASE_SMALL
        default 0 if BASE_FULL
        default 1 if !BASE_FULL
 
-config SLOB
-       default !SLAB
-       bool
-
-config OBSOLETE_INTERMODULE
-       tristate
-
 menu "Loadable module support"
 
 config MODULES
@@ -460,15 +627,6 @@ config MODULE_FORCE_UNLOAD
          rmmod).  This is mainly for kernel developers and desperate users.
          If unsure, say N.
 
-config OBSOLETE_MODPARM
-       bool
-       default y
-       depends on MODULES
-       help
-         You need this option to use module parameters on modules which
-         have not been converted to the new module parameter system yet.
-         If unsure, say Y.
-
 config MODVERSIONS
        bool "Module versioning support"
        depends on MODULES