aboutsummaryrefslogtreecommitdiffstats
path: root/init/Kconfig
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2009-01-10 20:42:53 -0500
committerIngo Molnar <mingo@elte.hu>2009-01-10 20:42:53 -0500
commit506c10f26c481b7f8ef27c1c79290f68989b2e9e (patch)
tree03de82e812f00957aa6276dac2fe51c3358e88d7 /init/Kconfig
parente1df957670aef74ffd9a4ad93e6d2c90bf6b4845 (diff)
parentc59765042f53a79a7a65585042ff463b69cb248c (diff)
Merge commit 'v2.6.29-rc1' into perfcounters/core
Conflicts: include/linux/kernel_stat.h
Diffstat (limited to 'init/Kconfig')
-rw-r--r--init/Kconfig291
1 files changed, 204 insertions, 87 deletions
diff --git a/init/Kconfig b/init/Kconfig
index c38ae71a5e19..a588cdc274bc 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -271,59 +271,6 @@ config LOG_BUF_SHIFT
271 13 => 8 KB 271 13 => 8 KB
272 12 => 4 KB 272 12 => 4 KB
273 273
274config CGROUPS
275 bool "Control Group support"
276 help
277 This option will let you use process cgroup subsystems
278 such as Cpusets
279
280 Say N if unsure.
281
282config CGROUP_DEBUG
283 bool "Example debug cgroup subsystem"
284 depends on CGROUPS
285 default n
286 help
287 This option enables a simple cgroup subsystem that
288 exports useful debugging information about the cgroups
289 framework
290
291 Say N if unsure
292
293config CGROUP_NS
294 bool "Namespace cgroup subsystem"
295 depends on CGROUPS
296 help
297 Provides a simple namespace cgroup subsystem to
298 provide hierarchical naming of sets of namespaces,
299 for instance virtual servers and checkpoint/restart
300 jobs.
301
302config CGROUP_FREEZER
303 bool "control group freezer subsystem"
304 depends on CGROUPS
305 help
306 Provides a way to freeze and unfreeze all tasks in a
307 cgroup.
308
309config CGROUP_DEVICE
310 bool "Device controller for cgroups"
311 depends on CGROUPS && EXPERIMENTAL
312 help
313 Provides a cgroup implementing whitelists for devices which
314 a process in the cgroup can mknod or open.
315
316config CPUSETS
317 bool "Cpuset support"
318 depends on SMP && CGROUPS
319 help
320 This option will let you create and manage CPUSETs which
321 allow dynamically partitioning a system into sets of CPUs and
322 Memory Nodes and assigning tasks to run only within those sets.
323 This is primarily useful on large SMP or NUMA systems.
324
325 Say N if unsure.
326
327# 274#
328# Architectures with an unreliable sched_clock() should select this: 275# Architectures with an unreliable sched_clock() should select this:
329# 276#
@@ -337,6 +284,8 @@ config GROUP_SCHED
337 help 284 help
338 This feature lets CPU scheduler recognize task groups and control CPU 285 This feature lets CPU scheduler recognize task groups and control CPU
339 bandwidth allocation to such task groups. 286 bandwidth allocation to such task groups.
287 In order to create a group from arbitrary set of processes, use
288 CONFIG_CGROUPS. (See Control Group support.)
340 289
341config FAIR_GROUP_SCHED 290config FAIR_GROUP_SCHED
342 bool "Group scheduling for SCHED_OTHER" 291 bool "Group scheduling for SCHED_OTHER"
@@ -379,6 +328,66 @@ config CGROUP_SCHED
379 328
380endchoice 329endchoice
381 330
331menu "Control Group support"
332config CGROUPS
333 bool "Control Group support"
334 help
335 This option add support for grouping sets of processes together, for
336 use with process control subsystems such as Cpusets, CFS, memory
337 controls or device isolation.
338 See
339 - Documentation/cpusets.txt (Cpusets)
340 - Documentation/scheduler/sched-design-CFS.txt (CFS)
341 - Documentation/cgroups/ (features for grouping, isolation)
342 - Documentation/controllers/ (features for resource control)
343
344 Say N if unsure.
345
346config CGROUP_DEBUG
347 bool "Example debug cgroup subsystem"
348 depends on CGROUPS
349 default n
350 help
351 This option enables a simple cgroup subsystem that
352 exports useful debugging information about the cgroups
353 framework
354
355 Say N if unsure
356
357config CGROUP_NS
358 bool "Namespace cgroup subsystem"
359 depends on CGROUPS
360 help
361 Provides a simple namespace cgroup subsystem to
362 provide hierarchical naming of sets of namespaces,
363 for instance virtual servers and checkpoint/restart
364 jobs.
365
366config CGROUP_FREEZER
367 bool "control group freezer subsystem"
368 depends on CGROUPS
369 help
370 Provides a way to freeze and unfreeze all tasks in a
371 cgroup.
372
373config CGROUP_DEVICE
374 bool "Device controller for cgroups"
375 depends on CGROUPS && EXPERIMENTAL
376 help
377 Provides a cgroup implementing whitelists for devices which
378 a process in the cgroup can mknod or open.
379
380config CPUSETS
381 bool "Cpuset support"
382 depends on SMP && CGROUPS
383 help
384 This option will let you create and manage CPUSETs which
385 allow dynamically partitioning a system into sets of CPUs and
386 Memory Nodes and assigning tasks to run only within those sets.
387 This is primarily useful on large SMP or NUMA systems.
388
389 Say N if unsure.
390
382config CGROUP_CPUACCT 391config CGROUP_CPUACCT
383 bool "Simple CPU accounting cgroup subsystem" 392 bool "Simple CPU accounting cgroup subsystem"
384 depends on CGROUPS 393 depends on CGROUPS
@@ -393,9 +402,6 @@ config RESOURCE_COUNTERS
393 infrastructure that works with cgroups 402 infrastructure that works with cgroups
394 depends on CGROUPS 403 depends on CGROUPS
395 404
396config MM_OWNER
397 bool
398
399config CGROUP_MEM_RES_CTLR 405config CGROUP_MEM_RES_CTLR
400 bool "Memory Resource Controller for Control Groups" 406 bool "Memory Resource Controller for Control Groups"
401 depends on CGROUPS && RESOURCE_COUNTERS 407 depends on CGROUPS && RESOURCE_COUNTERS
@@ -414,36 +420,68 @@ config CGROUP_MEM_RES_CTLR
414 sure you need the memory resource controller. Even when you enable 420 sure you need the memory resource controller. Even when you enable
415 this, you can set "cgroup_disable=memory" at your boot option to 421 this, you can set "cgroup_disable=memory" at your boot option to
416 disable memory resource controller and you can avoid overheads. 422 disable memory resource controller and you can avoid overheads.
417 (and lose benefits of memory resource contoller) 423 (and lose benefits of memory resource controller)
418 424
419 This config option also selects MM_OWNER config option, which 425 This config option also selects MM_OWNER config option, which
420 could in turn add some fork/exit overhead. 426 could in turn add some fork/exit overhead.
421 427
428config MM_OWNER
429 bool
430
431config CGROUP_MEM_RES_CTLR_SWAP
432 bool "Memory Resource Controller Swap Extension(EXPERIMENTAL)"
433 depends on CGROUP_MEM_RES_CTLR && SWAP && EXPERIMENTAL
434 help
435 Add swap management feature to memory resource controller. When you
436 enable this, you can limit mem+swap usage per cgroup. In other words,
437 when you disable this, memory resource controller has no cares to
438 usage of swap...a process can exhaust all of the swap. This extension
439 is useful when you want to avoid exhaustion swap but this itself
440 adds more overheads and consumes memory for remembering information.
441 Especially if you use 32bit system or small memory system, please
442 be careful about enabling this. When memory resource controller
443 is disabled by boot option, this will be automatically disabled and
444 there will be no overhead from this. Even when you set this config=y,
445 if boot option "noswapaccount" is set, swap will not be accounted.
446
447
448endmenu
449
422config SYSFS_DEPRECATED 450config SYSFS_DEPRECATED
423 bool 451 bool
424 452
425config SYSFS_DEPRECATED_V2 453config SYSFS_DEPRECATED_V2
426 bool "Create deprecated sysfs files" 454 bool "Create deprecated sysfs layout for older userspace tools"
427 depends on SYSFS 455 depends on SYSFS
428 default y 456 default y
429 select SYSFS_DEPRECATED 457 select SYSFS_DEPRECATED
430 help 458 help
431 This option creates deprecated symlinks such as the 459 This option switches the layout of sysfs to the deprecated
432 "device"-link, the <subsystem>:<name>-link, and the 460 version.
433 "bus"-link. It may also add deprecated key in the 461
434 uevent environment. 462 The current sysfs layout features a unified device tree at
435 None of these features or values should be used today, as 463 /sys/devices/, which is able to express a hierarchy between
436 they export driver core implementation details to userspace 464 class devices. If the deprecated option is set to Y, the
437 or export properties which can't be kept stable across kernel 465 unified device tree is split into a bus device tree at
438 releases. 466 /sys/devices/ and several individual class device trees at
439 467 /sys/class/. The class and bus devices will be connected by
440 If enabled, this option will also move any device structures 468 "<subsystem>:<name>" and the "device" links. The "block"
441 that belong to a class, back into the /sys/class hierarchy, in 469 class devices, will not show up in /sys/class/block/. Some
442 order to support older versions of udev and some userspace 470 subsystems will suppress the creation of some devices which
443 programs. 471 depend on the unified device tree.
444 472
445 If you are using a distro with the most recent userspace 473 This option is not a pure compatibility option that can
446 packages, it should be safe to say N here. 474 be safely enabled on newer distributions. It will change the
475 layout of sysfs to the non-extensible deprecated version,
476 and disable some features, which can not be exported without
477 confusing older userspace tools. Since 2007/2008 all major
478 distributions do not enable this option, and ship no tools which
479 depend on the deprecated layout or this option.
480
481 If you are using a new kernel on an older distribution, or use
482 older userspace tools, you might need to say Y here. Do not say Y,
483 if the original kernel, that came with your distribution, has
484 this option set to N.
447 485
448config PROC_PID_CPUSET 486config PROC_PID_CPUSET
449 bool "Include legacy /proc/<pid>/cpuset file" 487 bool "Include legacy /proc/<pid>/cpuset file"
@@ -868,10 +906,6 @@ config RT_MUTEXES
868 boolean 906 boolean
869 select PLIST 907 select PLIST
870 908
871config TINY_SHMEM
872 default !SHMEM
873 bool
874
875config BASE_SMALL 909config BASE_SMALL
876 int 910 int
877 default 0 if BASE_FULL 911 default 0 if BASE_FULL
@@ -946,14 +980,17 @@ config MODULE_SRCVERSION_ALL
946 the version). With this option, such a "srcversion" field 980 the version). With this option, such a "srcversion" field
947 will be created for all modules. If unsure, say N. 981 will be created for all modules. If unsure, say N.
948 982
949config KMOD
950 def_bool y
951 help
952 This is being removed soon. These days, CONFIG_MODULES
953 implies CONFIG_KMOD, so use that instead.
954
955endif # MODULES 983endif # MODULES
956 984
985config INIT_ALL_POSSIBLE
986 bool
987 help
988 Back when each arch used to define their own cpu_online_map and
989 cpu_possible_map, some of them chose to initialize cpu_possible_map
990 with all 1s, and others with all 0s. When they were centralised,
991 it was better to provide this option than to break all the archs
992 and have several arch maintainers persuing me down dark alleys.
993
957config STOP_MACHINE 994config STOP_MACHINE
958 bool 995 bool
959 default y 996 default y
@@ -966,10 +1003,90 @@ source "block/Kconfig"
966config PREEMPT_NOTIFIERS 1003config PREEMPT_NOTIFIERS
967 bool 1004 bool
968 1005
1006choice
1007 prompt "RCU Implementation"
1008 default CLASSIC_RCU
1009
969config CLASSIC_RCU 1010config CLASSIC_RCU
970 def_bool !PREEMPT_RCU 1011 bool "Classic RCU"
971 help 1012 help
972 This option selects the classic RCU implementation that is 1013 This option selects the classic RCU implementation that is
973 designed for best read-side performance on non-realtime 1014 designed for best read-side performance on non-realtime
974 systems. Classic RCU is the default. Note that the 1015 systems.
975 PREEMPT_RCU symbol is used to select/deselect this option. 1016
1017 Select this option if you are unsure.
1018
1019config TREE_RCU
1020 bool "Tree-based hierarchical RCU"
1021 help
1022 This option selects the RCU implementation that is
1023 designed for very large SMP system with hundreds or
1024 thousands of CPUs.
1025
1026config PREEMPT_RCU
1027 bool "Preemptible RCU"
1028 depends on PREEMPT
1029 help
1030 This option reduces the latency of the kernel by making certain
1031 RCU sections preemptible. Normally RCU code is non-preemptible, if
1032 this option is selected then read-only RCU sections become
1033 preemptible. This helps latency, but may expose bugs due to
1034 now-naive assumptions about each RCU read-side critical section
1035 remaining on a given CPU through its execution.
1036
1037endchoice
1038
1039config RCU_TRACE
1040 bool "Enable tracing for RCU"
1041 depends on TREE_RCU || PREEMPT_RCU
1042 help
1043 This option provides tracing in RCU which presents stats
1044 in debugfs for debugging RCU implementation.
1045
1046 Say Y here if you want to enable RCU tracing
1047 Say N if you are unsure.
1048
1049config RCU_FANOUT
1050 int "Tree-based hierarchical RCU fanout value"
1051 range 2 64 if 64BIT
1052 range 2 32 if !64BIT
1053 depends on TREE_RCU
1054 default 64 if 64BIT
1055 default 32 if !64BIT
1056 help
1057 This option controls the fanout of hierarchical implementations
1058 of RCU, allowing RCU to work efficiently on machines with
1059 large numbers of CPUs. This value must be at least the cube
1060 root of NR_CPUS, which allows NR_CPUS up to 32,768 for 32-bit
1061 systems and up to 262,144 for 64-bit systems.
1062
1063 Select a specific number if testing RCU itself.
1064 Take the default if unsure.
1065
1066config RCU_FANOUT_EXACT
1067 bool "Disable tree-based hierarchical RCU auto-balancing"
1068 depends on TREE_RCU
1069 default n
1070 help
1071 This option forces use of the exact RCU_FANOUT value specified,
1072 regardless of imbalances in the hierarchy. This is useful for
1073 testing RCU itself, and might one day be useful on systems with
1074 strong NUMA behavior.
1075
1076 Without RCU_FANOUT_EXACT, the code will balance the hierarchy.
1077
1078 Say N if unsure.
1079
1080config TREE_RCU_TRACE
1081 def_bool RCU_TRACE && TREE_RCU
1082 select DEBUG_FS
1083 help
1084 This option provides tracing for the TREE_RCU implementation,
1085 permitting Makefile to trivially select kernel/rcutree_trace.c.
1086
1087config PREEMPT_RCU_TRACE
1088 def_bool RCU_TRACE && PREEMPT_RCU
1089 select DEBUG_FS
1090 help
1091 This option provides tracing for the PREEMPT_RCU implementation,
1092 permitting Makefile to trivially select kernel/rcupreempt_trace.c.