This commit was manufactured by cvs2svn to create tag
[linux-2.6.git] / init / Kconfig
index 3f83eb2..7442c13 100644 (file)
@@ -50,6 +50,11 @@ config BROKEN_ON_SMP
        depends on BROKEN || !SMP
        default y
 
+config LOCK_KERNEL
+       bool
+       depends on SMP || PREEMPT
+       default y
+
 endmenu
 
 menu "General setup"
@@ -85,6 +90,8 @@ config SYSVIPC
          you want to run the DOS emulator dosemu under Linux (read the
          DOSEMU-HOWTO, available from <http://www.tldp.org/docs.html#howto>),
          you'll need to say Y here.
+         DOSEMU-HOWTO, available from <http://www.tldp.org/docs.html#howto>),
+         you'll need to say Y here.
 
          You can find documentation about IPC with "info ipc" and also in
          section 6.4 of the Linux Programmer's Guide, available from
@@ -133,6 +140,153 @@ 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/>.
 
+menu "Class Based Kernel Resource Management"
+
+config CKRM
+       bool "Class Based Kernel Resource Management Core"
+       depends on EXPERIMENTAL
+       help
+         Class-based Kernel Resource Management is a framework for controlling
+         and monitoring resource allocation of user-defined groups of tasks or
+         incoming socket connections. For more information, please visit
+         http://ckrm.sf.net. 
+
+         If you say Y here, enable the Resource Class File System and atleast
+         one of the resource controllers below. Say N if you are unsure. 
+
+config RCFS_FS
+       tristate "Resource Class File System (User API)"
+       depends on CKRM
+       help
+         RCFS is the filesystem API for CKRM. This separate configuration 
+         option is provided only for debugging and will eventually disappear 
+         since rcfs will be automounted whenever CKRM is configured. 
+
+          Say N if unsure, Y if you've enabled CKRM, M to debug rcfs 
+         initialization.
+
+config CKRM_TYPE_TASKCLASS
+       bool "Class Manager for Task Groups"
+       depends on CKRM
+       help
+         TASKCLASS provides the extensions for CKRM to track task classes
+         This is the base to enable task class based resource control for
+         cpu, memory and disk I/O.
+       
+         Say N if unsure 
+
+config CKRM_RES_NUMTASKS
+       tristate "Number of Tasks Resource Manager"
+       depends on CKRM_TYPE_TASKCLASS
+       default m
+       help
+         Provides a Resource Controller for CKRM that allows limiting no of
+         tasks a task class can have.
+       
+         Say N if unsure, Y to use the feature.
+
+config CKRM_CPU_SCHEDULE
+       bool "CKRM CPU scheduler"
+       depends on CKRM_TYPE_TASKCLASS
+       default y
+       help
+         Use CKRM CPU scheduler instead of Linux Scheduler
+       
+         Say N if unsure, Y to use the feature.
+
+config CKRM_RES_BLKIO
+       tristate " Disk I/O Resource Controller"
+       depends on CKRM_TYPE_TASKCLASS && IOSCHED_CFQ
+       default m
+       help
+         Provides a resource controller for best-effort block I/O 
+         bandwidth control. The controller attempts this by proportional 
+         servicing of requests in the I/O scheduler. However, seek
+         optimizations and reordering by device drivers/disk controllers may
+         alter the actual bandwidth delivered to a class.
+       
+         Say N if unsure, Y to use the feature.
+
+config CKRM_RES_MEM
+       bool "Class based physical memory controller"
+       default y
+       depends on CKRM
+       help
+         Provide the basic support for collecting physical memory usage information
+         among classes. Say Y if you want to know the memory usage of each class.
+
+config CKRM_MEM_LRUORDER_CHANGE
+       bool "Change the LRU ordering of scanned pages"
+       default n
+       depends on CKRM_RES_MEM
+       help
+         While trying to free pages, by default(n), scanned pages are left were they
+         are found if they belong to relatively under-used class. In this case the
+         LRU ordering of the memory subsystemis left intact. If this option is chosen,
+         then the scanned pages are moved to the tail of the list(active or inactive).
+         Changing this to yes reduces the checking overhead but violates the approximate
+         LRU order that is maintained by the paging subsystem.
+
+config CKRM_CPU_SCHEDULE_AT_BOOT
+       bool "Turn on at boot time"
+       depends on CKRM_CPU_SCHEDULE
+       default n
+       help
+         Enable CKRM CPU Scheduler at boot time. Otherwise
+         it can be turned on dynamically at runtime. If not
+         turned on the default Linux Scheduler behavior 
+         will be obtained.
+
+         Say N if unsure, Y to use this feature
+
+config CKRM_TYPE_SOCKETCLASS
+       bool "Class Manager for socket groups"
+       depends on CKRM
+       help
+         SOCKET provides the extensions for CKRM to track per socket
+         classes.  This is the base to enable socket based resource 
+         control for inbound connection control, bandwidth control etc.
+       
+         Say N if unsure.  
+
+config CKRM_RES_LISTENAQ
+       tristate "Multiple Accept Queues Resource Manager"
+       depends on CKRM_TYPE_SOCKETCLASS && ACCEPT_QUEUES
+       default m
+       help
+         Provides a  resource controller for CKRM to prioritize inbound
+         connection requests. See inbound control description for
+         "IP: TCP Multiple accept queues support". If you choose that
+         option choose this option to control the queue weights.
+         If unsure, say N.
+
+config CKRM_RBCE
+       tristate "Vanilla Rule-based Classification Engine (RBCE)"
+       depends on CKRM && RCFS_FS
+       default m
+       help
+         Provides an optional module to support creation of rules for automatic
+         classification of kernel objects. Rules are created/deleted/modified 
+          through an rcfs interface. RBCE is not required for CKRM. 
+         If unsure, say N.
+
+config CKRM_CRBCE
+       tristate "Enhanced Rule-based Classification Engine (RBCE)"
+       depends on CKRM && RCFS_FS && RELAYFS_FS && DELAY_ACCT
+       default m
+       help
+         Provides an optional module to support creation of rules for automatic
+         classification of kernel objects, just like RBCE above. In addition,
+         CRBCE provides per-process delay data (requires DELAY_ACCT configured)
+         enabled) and makes information on significant kernel events available
+         to userspace tools through relayfs (requires RELAYFS_FS configured). 
+       
+         If unsure, say N.
+
+endmenu
+
 config SYSCTL
        bool "Sysctl support"
        ---help---
@@ -171,7 +325,7 @@ config AUDITSYSCALL
 
 config LOG_BUF_SHIFT
        int "Kernel log buffer size (16 => 64KB, 17 => 128KB)" if DEBUG_KERNEL
-       range 12 20
+       range 12 21
        default 17 if ARCH_S390
        default 16 if X86_NUMAQ || IA64
        default 15 if SMP
@@ -205,6 +359,25 @@ config HOTPLUG
          agent" (/sbin/hotplug) to load modules and set up software needed
          to use devices as you hotplug them.
 
+config KOBJECT_UEVENT
+       bool "Kernel Userspace Events"
+       depends on NET
+       default y
+       help
+         This option enables the kernel userspace event layer, which is a
+         simple mechanism for kernel-to-user communication over a netlink
+         socket.
+         The goal of the kernel userspace events layer is to provide a simple
+         and efficient events system, that notifies userspace about kobject
+         state changes. This will enable applications to just listen for
+         events instead of polling system devices and files.
+         Hotplug events (kobject addition and removal) are also available on
+         the netlink socket in addition to the execution of /sbin/hotplug if
+         CONFIG_HOTPLUG is enabled.
+
+         Say Y, unless you are building a system requiring minimal memory
+         consumption.
+
 config IKCONFIG
        bool "Kernel .config support"
        ---help---
@@ -224,6 +397,22 @@ config IKCONFIG_PROC
          This option enables access to the kernel configuration file
          through /proc/config.gz.
 
+config OOM_PANIC
+       bool "OOM Panic"
+       default y
+       ---help---
+         This option enables panic() to be called when a system is out of
+         memory. This feature along with /proc/sys/kernel/panic allows a
+         different behavior on out-of-memory conditions when the standard
+         behavior (killing processes in an attempt to recover) does not
+         make sense.
+
+         If unsure, say N.
+
+config OOM_KILL
+       bool
+       depends on !OOM_PANIC
+       default y
 
 menuconfig EMBEDDED
        bool "Configure standard kernel features (for small systems)"
@@ -233,6 +422,15 @@ menuconfig EMBEDDED
           environments which can tolerate a "non-standard" kernel.
           Only use this if you really know what you are doing.
 
+config DELAY_ACCT
+       bool "Enable delay accounting (EXPERIMENTAL)"
+       help
+         In addition to counting frequency the total delay in ns is also
+         recorded. CPU delays are specified as cpu-wait and cpu-run. 
+         I/O delays are recorded for memory and regular I/O.
+         Information is accessible through /proc/<pid>/delay.
+
+
 config KALLSYMS
         bool "Load all symbols for debugging/kksymoops" if EMBEDDED
         default y
@@ -278,10 +476,8 @@ config EPOLL
          Disabling this option will cause the kernel to be built without
          support for epoll family of system calls.
 
-source "drivers/block/Kconfig.iosched"
-
 config CC_OPTIMIZE_FOR_SIZE
-       bool "Optimize for size" if EMBEDDED
+       bool "Optimize for size"
        default y if ARM || H8300
        default n
        help
@@ -303,6 +499,43 @@ 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
+       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.
+
+config CC_ALIGN_LABELS
+       int "Label alignment" if EMBEDDED
+       default 0
+       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.
+
+config CC_ALIGN_LOOPS
+       int "Loop alignment" if EMBEDDED
+       default 0
+       help
+         Align loops to a power-of-two boundary, skipping up to n bytes.
+         Zero means use compiler's default.
+
+config CC_ALIGN_JUMPS
+       int "Jump alignment" if EMBEDDED
+       default 0
+       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.
+
 endmenu                # General setup
 
 config TINY_SHMEM
@@ -370,6 +603,34 @@ config MODVERSIONS
          make them incompatible with the kernel you are running.  If
          unsure, say N.
 
+config MODULE_SRCVERSION_ALL
+       bool "Source checksum for all modules"
+       depends on MODULES
+       help
+         Modules which contain a MODULE_VERSION get an extra "srcversion"
+         field inserted into their modinfo section, which contains a
+         sum of the source files which made it.  This helps maintainers
+         see exactly which source was used to build a module (since
+         others sometimes change the module source without updating
+         the version).  With this option, such a "srcversion" field
+         will be created for all modules.  If unsure, say N.
+
+config MODULE_SIG
+       bool "Module signature verification (EXPERIMENTAL)"
+       depends on MODULES && EXPERIMENTAL
+       select CRYPTO
+       select CRYPTO_SHA1
+       select CRYPTO_SIGNATURE
+       help
+         Check modules for valid signatures upon load.
+
+config MODULE_SIG_FORCE
+       bool "Required modules to be validly signed (EXPERIMENTAL)"
+       depends on MODULE_SIG
+       help
+         Reject unsigned modules or signed modules for which we don't have a
+         key.
+
 config KMOD
        bool "Automatic kernel module loading"
        depends on MODULES