Merge branch 'for-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup
[cascardo/linux.git] / init / Kconfig
index 235c7a2..5481b49 100644 (file)
@@ -940,95 +940,24 @@ menuconfig CGROUPS
 
 if CGROUPS
 
-config CGROUP_DEBUG
-       bool "Example debug cgroup subsystem"
-       default n
-       help
-         This option enables a simple cgroup subsystem that
-         exports useful debugging information about the cgroups
-         framework.
-
-         Say N if unsure.
-
-config CGROUP_FREEZER
-       bool "Freezer cgroup subsystem"
-       help
-         Provides a way to freeze and unfreeze all tasks in a
-         cgroup.
-
-config CGROUP_PIDS
-       bool "PIDs cgroup subsystem"
-       help
-         Provides enforcement of process number limits in the scope of a
-         cgroup. Any attempt to fork more processes than is allowed in the
-         cgroup will fail. PIDs are fundamentally a global resource because it
-         is fairly trivial to reach PID exhaustion before you reach even a
-         conservative kmemcg limit. As a result, it is possible to grind a
-         system to halt without being limited by other cgroup policies. The
-         PIDs cgroup subsystem is designed to stop this from happening.
-
-         It should be noted that organisational operations (such as attaching
-         to a cgroup hierarchy will *not* be blocked by the PIDs subsystem),
-         since the PIDs limit only affects a process's ability to fork, not to
-         attach to a cgroup.
-
-config CGROUP_DEVICE
-       bool "Device controller for cgroups"
-       help
-         Provides a cgroup implementing whitelists for devices which
-         a process in the cgroup can mknod or open.
-
-config CPUSETS
-       bool "Cpuset support"
-       help
-         This option will let you create and manage CPUSETs which
-         allow dynamically partitioning a system into sets of CPUs and
-         Memory Nodes and assigning tasks to run only within those sets.
-         This is primarily useful on large SMP or NUMA systems.
-
-         Say N if unsure.
-
-config PROC_PID_CPUSET
-       bool "Include legacy /proc/<pid>/cpuset file"
-       depends on CPUSETS
-       default y
-
-config CGROUP_CPUACCT
-       bool "Simple CPU accounting cgroup subsystem"
-       help
-         Provides a simple Resource Controller for monitoring the
-         total CPU consumed by the tasks in a cgroup.
-
 config PAGE_COUNTER
        bool
 
 config MEMCG
-       bool "Memory Resource Controller for Control Groups"
+       bool "Memory controller"
        select PAGE_COUNTER
        select EVENTFD
        help
-         Provides a memory resource controller that manages both anonymous
-         memory and page cache. (See Documentation/cgroups/memory.txt)
+         Provides control over the memory footprint of tasks in a cgroup.
 
 config MEMCG_SWAP
-       bool "Memory Resource Controller Swap Extension"
+       bool "Swap controller"
        depends on MEMCG && SWAP
        help
-         Add swap management feature to memory resource controller. When you
-         enable this, you can limit mem+swap usage per cgroup. In other words,
-         when you disable this, memory resource controller has no cares to
-         usage of swap...a process can exhaust all of the swap. This extension
-         is useful when you want to avoid exhaustion swap but this itself
-         adds more overheads and consumes memory for remembering information.
-         Especially if you use 32bit system or small memory system, please
-         be careful about enabling this. When memory resource controller
-         is disabled by boot option, this will be automatically disabled and
-         there will be no overhead from this. Even when you set this config=y,
-         if boot option "swapaccount=0" is set, swap will not be accounted.
-         Now, memory usage of swap_cgroup is 2 bytes per entry. If swap page
-         size is 4096bytes, 512k per 1Gbytes of swap.
+         Provides control over the swap space consumed by tasks in a cgroup.
+
 config MEMCG_SWAP_ENABLED
-       bool "Memory Resource Controller Swap Extension enabled by default"
+       bool "Swap controller enabled by default"
        depends on MEMCG_SWAP
        default y
        help
@@ -1052,34 +981,43 @@ config MEMCG_KMEM
          the kmem extension can use it to guarantee that no group of processes
          will ever exhaust kernel resources alone.
 
-config CGROUP_HUGETLB
-       bool "HugeTLB Resource Controller for Control Groups"
-       depends on HUGETLB_PAGE
-       select PAGE_COUNTER
+config BLK_CGROUP
+       bool "IO controller"
+       depends on BLOCK
        default n
-       help
-         Provides a cgroup Resource Controller for HugeTLB pages.
-         When you enable this, you can put a per cgroup limit on HugeTLB usage.
-         The limit is enforced during page fault. Since HugeTLB doesn't
-         support page reclaim, enforcing the limit at page fault time implies
-         that, the application will get SIGBUS signal if it tries to access
-         HugeTLB pages beyond its limit. This requires the application to know
-         beforehand how much HugeTLB pages it would require for its use. The
-         control group is tracked in the third page lru pointer. This means
-         that we cannot use the controller with huge page less than 3 pages.
+       ---help---
+       Generic block IO controller cgroup interface. This is the common
+       cgroup interface which should be used by various IO controlling
+       policies.
 
-config CGROUP_PERF
-       bool "Enable perf_event per-cpu per-container group (cgroup) monitoring"
-       depends on PERF_EVENTS && CGROUPS
-       help
-         This option extends the per-cpu mode to restrict monitoring to
-         threads which belong to the cgroup specified and run on the
-         designated cpu.
+       Currently, CFQ IO scheduler uses it to recognize task groups and
+       control disk bandwidth allocation (proportional time slice allocation)
+       to such task groups. It is also used by bio throttling logic in
+       block layer to implement upper limit in IO rates on a device.
 
-         Say N if unsure.
+       This option only enables generic Block IO controller infrastructure.
+       One needs to also enable actual IO controlling logic/policy. For
+       enabling proportional weight division of disk bandwidth in CFQ, set
+       CONFIG_CFQ_GROUP_IOSCHED=y; for enabling throttling policy, set
+       CONFIG_BLK_DEV_THROTTLING=y.
+
+       See Documentation/cgroups/blkio-controller.txt for more information.
+
+config DEBUG_BLK_CGROUP
+       bool "IO controller debugging"
+       depends on BLK_CGROUP
+       default n
+       ---help---
+       Enable some debugging help. Currently it exports additional stat
+       files in a cgroup which can be useful for debugging.
+
+config CGROUP_WRITEBACK
+       bool
+       depends on MEMCG && BLK_CGROUP
+       default y
 
 menuconfig CGROUP_SCHED
-       bool "Group CPU scheduler"
+       bool "CPU controller"
        default n
        help
          This feature lets CPU scheduler recognize task groups and control CPU
@@ -1116,40 +1054,89 @@ config RT_GROUP_SCHED
 
 endif #CGROUP_SCHED
 
-config BLK_CGROUP
-       bool "Block IO controller"
-       depends on BLOCK
+config CGROUP_PIDS
+       bool "PIDs controller"
+       help
+         Provides enforcement of process number limits in the scope of a
+         cgroup. Any attempt to fork more processes than is allowed in the
+         cgroup will fail. PIDs are fundamentally a global resource because it
+         is fairly trivial to reach PID exhaustion before you reach even a
+         conservative kmemcg limit. As a result, it is possible to grind a
+         system to halt without being limited by other cgroup policies. The
+         PIDs cgroup subsystem is designed to stop this from happening.
+
+         It should be noted that organisational operations (such as attaching
+         to a cgroup hierarchy will *not* be blocked by the PIDs subsystem),
+         since the PIDs limit only affects a process's ability to fork, not to
+         attach to a cgroup.
+
+config CGROUP_FREEZER
+       bool "Freezer controller"
+       help
+         Provides a way to freeze and unfreeze all tasks in a
+         cgroup.
+
+config CGROUP_HUGETLB
+       bool "HugeTLB controller"
+       depends on HUGETLB_PAGE
+       select PAGE_COUNTER
        default n
-       ---help---
-       Generic block IO controller cgroup interface. This is the common
-       cgroup interface which should be used by various IO controlling
-       policies.
+       help
+         Provides a cgroup controller for HugeTLB pages.
+         When you enable this, you can put a per cgroup limit on HugeTLB usage.
+         The limit is enforced during page fault. Since HugeTLB doesn't
+         support page reclaim, enforcing the limit at page fault time implies
+         that, the application will get SIGBUS signal if it tries to access
+         HugeTLB pages beyond its limit. This requires the application to know
+         beforehand how much HugeTLB pages it would require for its use. The
+         control group is tracked in the third page lru pointer. This means
+         that we cannot use the controller with huge page less than 3 pages.
 
-       Currently, CFQ IO scheduler uses it to recognize task groups and
-       control disk bandwidth allocation (proportional time slice allocation)
-       to such task groups. It is also used by bio throttling logic in
-       block layer to implement upper limit in IO rates on a device.
+config CPUSETS
+       bool "Cpuset controller"
+       help
+         This option will let you create and manage CPUSETs which
+         allow dynamically partitioning a system into sets of CPUs and
+         Memory Nodes and assigning tasks to run only within those sets.
+         This is primarily useful on large SMP or NUMA systems.
 
-       This option only enables generic Block IO controller infrastructure.
-       One needs to also enable actual IO controlling logic/policy. For
-       enabling proportional weight division of disk bandwidth in CFQ, set
-       CONFIG_CFQ_GROUP_IOSCHED=y; for enabling throttling policy, set
-       CONFIG_BLK_DEV_THROTTLING=y.
+         Say N if unsure.
 
-       See Documentation/cgroups/blkio-controller.txt for more information.
+config PROC_PID_CPUSET
+       bool "Include legacy /proc/<pid>/cpuset file"
+       depends on CPUSETS
+       default y
 
-config DEBUG_BLK_CGROUP
-       bool "Enable Block IO controller debugging"
-       depends on BLK_CGROUP
+config CGROUP_DEVICE
+       bool "Device controller"
+       help
+         Provides a cgroup controller implementing whitelists for
+         devices which a process in the cgroup can mknod or open.
+
+config CGROUP_CPUACCT
+       bool "Simple CPU accounting controller"
+       help
+         Provides a simple controller for monitoring the
+         total CPU consumed by the tasks in a cgroup.
+
+config CGROUP_PERF
+       bool "Perf controller"
+       depends on PERF_EVENTS
+       help
+         This option extends the perf per-cpu mode to restrict monitoring
+         to threads which belong to the cgroup specified and run on the
+         designated cpu.
+
+         Say N if unsure.
+
+config CGROUP_DEBUG
+       bool "Example controller"
        default n
-       ---help---
-       Enable some debugging help. Currently it exports additional stat
-       files in a cgroup which can be useful for debugging.
+       help
+         This option enables a simple controller that exports
+         debugging information about the cgroups framework.
 
-config CGROUP_WRITEBACK
-       bool
-       depends on MEMCG && BLK_CGROUP
-       default y
+         Say N.
 
 endif # CGROUPS