Merge git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/sysctl-2.6
[safe/jmp/linux-2.6] / init / Kconfig
index 92d4106..3889924 100644 (file)
@@ -16,6 +16,11 @@ config DEFCONFIG_LIST
        default "$ARCH_DEFCONFIG"
        default "arch/$ARCH/defconfig"
 
+config CONSTRUCTORS
+       bool
+       depends on !UML
+       default y
+
 menu "General setup"
 
 config EXPERIMENTAL
@@ -208,6 +213,12 @@ config POSIX_MQUEUE
 
          If unsure, say Y.
 
+config POSIX_MQUEUE_SYSCTL
+       bool
+       depends on POSIX_MQUEUE
+       depends on SYSCTL
+       default y
+
 config BSD_PROCESS_ACCT
        bool "BSD Process Accounting"
        help
@@ -286,7 +297,7 @@ config AUDIT
 
 config AUDITSYSCALL
        bool "Enable system-call auditing support"
-       depends on AUDIT && (X86 || PPC || PPC64 || S390 || IA64 || UML || SPARC64|| SUPERH)
+       depends on AUDIT && (X86 || PPC || S390 || IA64 || UML || SPARC64 || SUPERH)
        default y if SECURITY_SELINUX
        help
          Enable low-overhead system-call auditing infrastructure that
@@ -296,46 +307,47 @@ config AUDITSYSCALL
 
 config AUDIT_TREE
        def_bool y
-       depends on AUDITSYSCALL && INOTIFY
+       depends on AUDITSYSCALL
+       select INOTIFY
 
 menu "RCU Subsystem"
 
 choice
        prompt "RCU Implementation"
-       default CLASSIC_RCU
-
-config CLASSIC_RCU
-       bool "Classic RCU"
-       help
-         This option selects the classic RCU implementation that is
-         designed for best read-side performance on non-realtime
-         systems.
-
-         Select this option if you are unsure.
+       default TREE_RCU
 
 config TREE_RCU
        bool "Tree-based hierarchical RCU"
        help
          This option selects the RCU implementation that is
          designed for very large SMP system with hundreds or
-         thousands of CPUs.
+         thousands of CPUs.  It also scales down nicely to
+         smaller systems.
 
-config PREEMPT_RCU
-       bool "Preemptible RCU"
+config TREE_PREEMPT_RCU
+       bool "Preemptable tree-based hierarchical RCU"
        depends on PREEMPT
        help
-         This option reduces the latency of the kernel by making certain
-         RCU sections preemptible. Normally RCU code is non-preemptible, if
-         this option is selected then read-only RCU sections become
-         preemptible. This helps latency, but may expose bugs due to
-         now-naive assumptions about each RCU read-side critical section
-         remaining on a given CPU through its execution.
+         This option selects the RCU implementation that is
+         designed for very large SMP systems with hundreds or
+         thousands of CPUs, but for which real-time response
+         is also required.  It also scales down nicely to
+         smaller systems.
+
+config TINY_RCU
+       bool "UP-only small-memory-footprint RCU"
+       depends on !SMP
+       help
+         This option selects the RCU implementation that is
+         designed for UP systems from which real-time response
+         is not required.  This option greatly reduces the
+         memory footprint of RCU.
 
 endchoice
 
 config RCU_TRACE
        bool "Enable tracing for RCU"
-       depends on TREE_RCU || PREEMPT_RCU
+       depends on TREE_RCU || TREE_PREEMPT_RCU
        help
          This option provides tracing in RCU which presents stats
          in debugfs for debugging RCU implementation.
@@ -347,7 +359,7 @@ config RCU_FANOUT
        int "Tree-based hierarchical RCU fanout value"
        range 2 64 if 64BIT
        range 2 32 if !64BIT
-       depends on TREE_RCU
+       depends on TREE_RCU || TREE_PREEMPT_RCU
        default 64 if 64BIT
        default 32 if !64BIT
        help
@@ -362,7 +374,7 @@ config RCU_FANOUT
 
 config RCU_FANOUT_EXACT
        bool "Disable tree-based hierarchical RCU auto-balancing"
-       depends on TREE_RCU
+       depends on TREE_RCU || TREE_PREEMPT_RCU
        default n
        help
          This option forces use of the exact RCU_FANOUT value specified,
@@ -375,18 +387,12 @@ config RCU_FANOUT_EXACT
          Say N if unsure.
 
 config TREE_RCU_TRACE
-       def_bool RCU_TRACE && TREE_RCU
+       def_bool RCU_TRACE && ( TREE_RCU || TREE_PREEMPT_RCU )
        select DEBUG_FS
        help
-         This option provides tracing for the TREE_RCU implementation,
-         permitting Makefile to trivially select kernel/rcutree_trace.c.
-
-config PREEMPT_RCU_TRACE
-       def_bool RCU_TRACE && PREEMPT_RCU
-       select DEBUG_FS
-       help
-         This option provides tracing for the PREEMPT_RCU implementation,
-         permitting Makefile to trivially select kernel/rcupreempt_trace.c.
+         This option provides tracing for the TREE_RCU and
+         TREE_PREEMPT_RCU implementations, permitting Makefile to
+         trivially select kernel/rcutree_trace.c.
 
 endmenu # "RCU Subsystem"
 
@@ -531,7 +537,7 @@ config CGROUP_DEVICE
 
 config CPUSETS
        bool "Cpuset support"
-       depends on SMP && CGROUPS
+       depends on CGROUPS
        help
          This option will let you create and manage CPUSETs which
          allow dynamically partitioning a system into sets of CPUs and
@@ -565,7 +571,7 @@ config CGROUP_MEM_RES_CTLR
        select MM_OWNER
        help
          Provides a memory resource controller that manages both anonymous
-         memory and page cache. (See Documentation/controllers/memory.txt)
+         memory and page cache. (See Documentation/cgroups/memory.txt)
 
          Note that setting this option increases fixed memory overhead
          associated with each page of memory in the system. By this,
@@ -609,13 +615,13 @@ config SYSFS_DEPRECATED
        bool
 
 config SYSFS_DEPRECATED_V2
-       bool "Create deprecated sysfs layout for older userspace tools"
+       bool "enable deprecated sysfs features which may confuse old userspace tools"
        depends on SYSFS
-       default y
+       default n
        select SYSFS_DEPRECATED
        help
          This option switches the layout of sysfs to the deprecated
-         version.
+         version. Do not use it on recent distributions.
 
          The current sysfs layout features a unified device tree at
          /sys/devices/, which is able to express a hierarchy between
@@ -670,10 +676,10 @@ config UTS_NS
 
 config IPC_NS
        bool "IPC namespace"
-       depends on NAMESPACES && SYSVIPC
+       depends on NAMESPACES && (SYSVIPC || POSIX_MQUEUE)
        help
          In this namespace tasks work with IPC ids which correspond to
-         different IPC objects in different namespaces
+         different IPC objects in different namespaces.
 
 config USER_NS
        bool "User namespace (EXPERIMENTAL)"
@@ -689,7 +695,7 @@ config PID_NS
        depends on NAMESPACES && EXPERIMENTAL
        help
          Support process id namespaces.  This allows having multiple
-         process with the same pid as long as they are in different
+         processes with the same pid as long as they are in different
          pid namespaces.  This is a building block of containers.
 
          Unless you want to work with an experimental feature
@@ -757,6 +763,7 @@ config UID16
 
 config SYSCTL_SYSCALL
        bool "Sysctl syscall support" if EMBEDDED
+       depends on PROC_SYSCTL
        default y
        select SYSCTL
        ---help---
@@ -919,6 +926,86 @@ config AIO
           by some high performance threaded applications. Disabling
           this option saves about 7k.
 
+config HAVE_PERF_EVENTS
+       bool
+       help
+         See tools/perf/design.txt for details.
+
+config PERF_USE_VMALLOC
+       bool
+       help
+         See tools/perf/design.txt for details
+
+menu "Kernel Performance Events And Counters"
+
+config PERF_EVENTS
+       bool "Kernel performance events and counters"
+       default y if (PROFILING || PERF_COUNTERS)
+       depends on HAVE_PERF_EVENTS
+       select ANON_INODES
+       help
+         Enable kernel support for various performance events provided
+         by software and hardware.
+
+         Software events are supported either built-in or via the
+         use of generic tracepoints.
+
+         Most modern CPUs support performance events via performance
+         counter registers. These registers count the number of certain
+         types of hw events: such as instructions executed, cachemisses
+         suffered, or branches mis-predicted - without slowing down the
+         kernel or applications. These registers can also trigger interrupts
+         when a threshold number of events have passed - and can thus be
+         used to profile the code that runs on that CPU.
+
+         The Linux Performance Event subsystem provides an abstraction of
+         these software and hardware event capabilities, available via a
+         system call and used by the "perf" utility in tools/perf/. It
+         provides per task and per CPU counters, and it provides event
+         capabilities on top of those.
+
+         Say Y if unsure.
+
+config EVENT_PROFILE
+       bool "Tracepoint profiling sources"
+       depends on PERF_EVENTS && EVENT_TRACING
+       default y
+       help
+        Allow the use of tracepoints as software performance events.
+
+        When this is enabled, you can create perf events based on
+        tracepoints using PERF_TYPE_TRACEPOINT and the tracepoint ID
+        found in debugfs://tracing/events/*/*/id. (The -e/--events
+        option to the perf tool can parse and interpret symbolic
+        tracepoints, in the subsystem:tracepoint_name format.)
+
+config PERF_COUNTERS
+       bool "Kernel performance counters (old config option)"
+       depends on HAVE_PERF_EVENTS
+       help
+         This config has been obsoleted by the PERF_EVENTS
+         config option - please see that one for details.
+
+         It has no effect on the kernel whether you enable
+         it or not, it is a compatibility placeholder.
+
+         Say N if unsure.
+
+config DEBUG_PERF_USE_VMALLOC
+       default n
+       bool "Debug: use vmalloc to back perf mmap() buffers"
+       depends on PERF_EVENTS && DEBUG_KERNEL
+       select PERF_USE_VMALLOC
+       help
+        Use vmalloc memory to back perf mmap() buffers.
+
+        Mostly useful for debugging the vmalloc code on platforms
+        that don't require it.
+
+        Say N if unsure.
+
+endmenu
+
 config VM_EVENT_COUNTERS
        default y
        bool "Enable VM event counters for /proc/vmstat" if EMBEDDED
@@ -954,7 +1041,7 @@ config COMPAT_BRK
          Randomizing heap placement makes heap exploits harder, but it
          also breaks ancient binaries (including anything libc5 based).
          This option changes the bootup default to heap randomization
-         disabled, and can be overriden runtime by setting
+         disabled, and can be overridden at runtime by setting
          /proc/sys/kernel/randomize_va_space to 2.
 
          On non-ancient distros (post-2000 ones) N is usually a safe choice.
@@ -1005,14 +1092,31 @@ config PROFILING
 config TRACEPOINTS
        bool
 
-config MARKERS
-       bool "Activate markers"
-       depends on TRACEPOINTS
+source "arch/Kconfig"
+
+config SLOW_WORK
+       default n
+       bool
        help
-         Place an empty function call at each marker site. Can be
-         dynamically changed for a probe function.
+         The slow work thread pool provides a number of dynamically allocated
+         threads that can be used by the kernel to perform operations that
+         take a relatively long time.
 
-source "arch/Kconfig"
+         An example of this would be CacheFiles doing a path lookup followed
+         by a series of mkdirs and a create call, all of which have to touch
+         disk.
+
+         See Documentation/slow-work.txt.
+
+config SLOW_WORK_DEBUG
+       bool "Slow work debugging through debugfs"
+       default n
+       depends on SLOW_WORK && DEBUG_FS
+       help
+         Display the contents of the slow work run queue through debugfs,
+         including items currently executing.
+
+         See Documentation/slow-work.txt.
 
 endmenu                # General setup
 
@@ -1112,7 +1216,7 @@ config INIT_ALL_POSSIBLE
          cpu_possible_map, some of them chose to initialize cpu_possible_map
          with all 1s, and others with all 0s.  When they were centralised,
          it was better to provide this option than to break all the archs
-         and have several arch maintainers persuing me down dark alleys.
+         and have several arch maintainers pursuing me down dark alleys.
 
 config STOP_MACHINE
        bool
@@ -1126,3 +1230,4 @@ source "block/Kconfig"
 config PREEMPT_NOTIFIERS
        bool
 
+source "kernel/Kconfig.locks"