X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=init%2FKconfig;h=d9d878a3bb46835e1f2c4301620975e05757ee1d;hb=b92a6edd4b77a8794adb497280beea5df5e59a14;hp=b170aa1d43bd127c75b7380237e18bbb2f1c3f2e;hpb=e0cc09e295f346b7921e921f385fe5213472316a;p=linux-2.6 diff --git a/init/Kconfig b/init/Kconfig index b170aa1d43..bab643f771 100644 --- a/init/Kconfig +++ b/init/Kconfig @@ -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" @@ -80,16 +77,20 @@ 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: - Note: This requires Perl, and a git repository, but not necessarily - the git or cogito tools to be installed. + $ git rev-parse --verify HEAD + + which is done within the script "scripts/setlocalversion".) config SWAP bool "Support for paging of anonymous memory (swap)" @@ -116,15 +117,6 @@ config SYSVIPC section 6.4 of the Linux Programmer's Guide, available from . -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 @@ -139,9 +131,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 - + 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 @@ -216,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" @@ -262,6 +253,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 @@ -273,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 @@ -287,7 +316,7 @@ config SYSFS_DEPRECATED releases. If enabled, this option will also move any device structures - that belong to a class, back into the /sys/class heirachy, in + 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, @@ -329,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. @@ -352,7 +381,7 @@ menuconfig EMBEDDED 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) + 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. @@ -456,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 @@ -474,15 +538,6 @@ config SHMEM option replaces shmem and tmpfs with the much simpler ramfs code, which may be appropriate on small systems without swap. -config SLAB - default y - bool "Use full SLAB allocator" if (EMBEDDED && !SMP && !SPARSEMEM) - 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. - config VM_EVENT_COUNTERS default y bool "Enable VM event counters for /proc/vmstat" if EMBEDDED @@ -492,6 +547,51 @@ config 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 + 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. + +choice + prompt "Choose SLAB allocator" + default SLUB + help + This option allows to select a slab allocator. + +config SLAB + bool "SLAB" + help + 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 SLUB + bool "SLUB (Unqueued Allocator)" + help + 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 SLOB + depends on EMBEDDED + bool "SLOB (Simple Allocator)" + help + SLOB replaces the SLAB allocator with a drastically simpler + 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. + +endchoice + endmenu # General setup config RT_MUTEXES @@ -507,13 +607,20 @@ config BASE_SMALL default 0 if BASE_FULL default 1 if !BASE_FULL -config SLOB - default !SLAB - bool - -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 @@ -593,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