]> err.no Git - linux-2.6/blobdiff - init/Kconfig
Add a configure option to group pages by mobility
[linux-2.6] / init / Kconfig
index 322b1f8c21b3555c2e11c186a08cb4588e1b75bc..bab643f7717f2a0be9b2b63d7c4d14acdb5a99e5 100644 (file)
@@ -7,7 +7,7 @@ config DEFCONFIG_LIST
        default "/boot/config-$UNAME_RELEASE"
        default "arch/$ARCH/defconfig"
 
-menu "Code maturity level options"
+menu "General setup"
 
 config EXPERIMENTAL
        bool "Prompt for development and/or incomplete code/drivers"
@@ -61,9 +61,6 @@ config INIT_ENV_ARG_LIMIT
          Maximum of each of the number of arguments and environment
          variables passed to init from the kernel command line.
 
-endmenu
-
-menu "General setup"
 
 config LOCALVERSION
        string "Local version - append to kernel release"
@@ -120,15 +117,6 @@ 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
@@ -218,13 +206,14 @@ config TASK_IO_ACCOUNTING
 
          Say N if unsure.
 
-config UTS_NS
-       bool "UTS Namespaces"
+config USER_NS
+       bool "User Namespaces (EXPERIMENTAL)"
        default n
+       depends on EXPERIMENTAL
        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.
+         Support user namespaces.  This allows containers, i.e.
+         vservers, to use user namespaces to provide different
+         user info for different servers.  If unsure, say N.
 
 config AUDIT
        bool "Auditing support"
@@ -292,6 +281,27 @@ config CPUSETS
 
          Say N if unsure.
 
+config FAIR_GROUP_SCHED
+       bool "Fair group CPU scheduler"
+       default y
+       depends on EXPERIMENTAL
+       help
+         This feature lets CPU scheduler recognize task groups and control CPU
+         bandwidth allocation to such task groups.
+
+choice
+       depends on FAIR_GROUP_SCHED
+       prompt "Basis for grouping tasks"
+       default FAIR_USER_SCHED
+
+config FAIR_USER_SCHED
+       bool "user id"
+       help
+         This option will choose userid as the basis for grouping
+         tasks, thus providing equal CPU bandwidth to each user.
+
+endchoice
+
 config SYSFS_DEPRECATED
        bool "Create deprecated sysfs files"
        default y
@@ -348,7 +358,7 @@ endif
 config CC_OPTIMIZE_FOR_SIZE
        bool "Optimize for size (Look out for broken compilers!)"
        default y
-       depends on ARM || H8300 || EXPERIMENTAL
+       depends on ARM || H8300 || SUPERH || EXPERIMENTAL
        help
          Enabling this option will pass "-Os" instead of "-O2" to gcc
          resulting in a smaller kernel.
@@ -475,13 +485,48 @@ config FUTEX
          support for "fast userspace mutexes".  The resulting kernel may not
          run glibc-based applications correctly.
 
+config ANON_INODES
+       bool
+
 config EPOLL
        bool "Enable eventpoll support" if EMBEDDED
        default y
+       select 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
+       select ANON_INODES
+       default y
+       help
+         Enable the signalfd() system call that allows to receive signals
+         on a file descriptor.
+
+         If unsure, say Y.
+
+config TIMERFD
+       bool "Enable timerfd() system call" if EMBEDDED
+       select ANON_INODES
+       depends on BROKEN
+       default y
+       help
+         Enable the timerfd() system call that allows to receive timer
+         events on a file descriptor.
+
+         If unsure, say Y.
+
+config EVENTFD
+       bool "Enable eventfd() system call" if EMBEDDED
+       select ANON_INODES
+       default y
+       help
+         Enable the eventfd() system call that allows to receive both
+         kernel notification (ie. KAIO) or userspace notifications.
+
+         If unsure, say Y.
+
 config SHMEM
        bool "Use full shmem filesystem" if EMBEDDED
        default y
@@ -514,7 +559,7 @@ config SLUB_DEBUG
 
 choice
        prompt "Choose SLAB allocator"
-       default SLAB
+       default SLUB
        help
           This option allows to select a slab allocator.
 
@@ -527,7 +572,6 @@ config SLAB
          a slab allocator.
 
 config SLUB
-       depends on EXPERIMENTAL && !ARCH_USES_SLAB_PAGE_STRUCT
        bool "SLUB (Unqueued Allocator)"
        help
           SLUB is a slab allocator that minimizes cache line usage
@@ -537,14 +581,11 @@ config SLUB
           and has enhanced diagnostics.
 
 config SLOB
-#
-#      SLOB does not support SMP because SLAB_DESTROY_BY_RCU is unsupported
-#
-       depends on EMBEDDED && !SMP && !SPARSEMEM
+       depends on EMBEDDED
        bool "SLOB (Simple Allocator)"
        help
           SLOB replaces the SLAB allocator with a drastically simpler
-          allocator.  SLOB is more space efficient that SLAB but does not
+          allocator.  SLOB is more space efficient than 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.
@@ -566,9 +607,20 @@ config BASE_SMALL
        default 0 if BASE_FULL
        default 1 if !BASE_FULL
 
-menu "Loadable module support"
+config PAGE_GROUP_BY_MOBILITY
+       bool "Group pages based on their mobility in the page allocator"
+       def_bool y
+       help
+         The standard allocator will fragment memory over time which means
+         that high order allocations will fail even if kswapd is running. If
+         this option is set, the allocator will try and group page types
+         based on their ability to migrate or reclaim. This is a best effort
+         attempt at lowering fragmentation which a few workloads care about.
+         The loss is a more complex allocator that may perform slower. If
+         you are interested in working with large pages, say Y and set
+         /proc/sys/vm/min_free_bytes to 16374. Otherwise say N
 
-config MODULES
+menuconfig MODULES
        bool "Enable loadable module support"
        help
          Kernel modules are small pieces of compiled code which can
@@ -648,8 +700,5 @@ config STOP_MACHINE
        depends on (SMP && MODULE_UNLOAD) || HOTPLUG_CPU
        help
          Need stop_machine() primitive.
-endmenu
 
-menu "Block layer"
 source "block/Kconfig"
-endmenu