cgroup: put controller Kconfig options in meaningful order
To make it easier to quickly find what's needed list the basic resource controllers of cgroup2 first - io, memory, cpu - while pushing the more exotic and/or legacy controllers to the bottom. tj: Removed spurious "&& CGROUPS" from CGROUP_PERF as suggested by Li. Signed-off-by: Johannes Weiner <hannes@cmpxchg.org> Acked-by: Zefan Li <lizefan@huawei.com> Signed-off-by: Tejun Heo <tj@kernel.org>
This commit is contained in:
parent
a0166ec4b0
commit
6bf024e693
218
init/Kconfig
218
init/Kconfig
@ -940,64 +940,6 @@ menuconfig CGROUPS
|
|||||||
|
|
||||||
if CGROUPS
|
if CGROUPS
|
||||||
|
|
||||||
config CGROUP_DEBUG
|
|
||||||
bool "Example controller"
|
|
||||||
default n
|
|
||||||
help
|
|
||||||
This option enables a simple controller that exports
|
|
||||||
debugging information about the cgroups framework.
|
|
||||||
|
|
||||||
Say N.
|
|
||||||
|
|
||||||
config CGROUP_FREEZER
|
|
||||||
bool "Freezer controller"
|
|
||||||
help
|
|
||||||
Provides a way to freeze and unfreeze all tasks in a
|
|
||||||
cgroup.
|
|
||||||
|
|
||||||
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_DEVICE
|
|
||||||
bool "Device controller"
|
|
||||||
help
|
|
||||||
Provides a cgroup controller implementing whitelists for
|
|
||||||
devices which a process in the cgroup can mknod or open.
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
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 controller"
|
|
||||||
help
|
|
||||||
Provides a simple controller for monitoring the
|
|
||||||
total CPU consumed by the tasks in a cgroup.
|
|
||||||
|
|
||||||
config PAGE_COUNTER
|
config PAGE_COUNTER
|
||||||
bool
|
bool
|
||||||
|
|
||||||
@ -1039,31 +981,40 @@ config MEMCG_KMEM
|
|||||||
the kmem extension can use it to guarantee that no group of processes
|
the kmem extension can use it to guarantee that no group of processes
|
||||||
will ever exhaust kernel resources alone.
|
will ever exhaust kernel resources alone.
|
||||||
|
|
||||||
config CGROUP_HUGETLB
|
config BLK_CGROUP
|
||||||
bool "HugeTLB controller"
|
bool "IO controller"
|
||||||
depends on HUGETLB_PAGE
|
depends on BLOCK
|
||||||
select PAGE_COUNTER
|
|
||||||
default n
|
default n
|
||||||
help
|
---help---
|
||||||
Provides a cgroup controller for HugeTLB pages.
|
Generic block IO controller cgroup interface. This is the common
|
||||||
When you enable this, you can put a per cgroup limit on HugeTLB usage.
|
cgroup interface which should be used by various IO controlling
|
||||||
The limit is enforced during page fault. Since HugeTLB doesn't
|
policies.
|
||||||
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.
|
|
||||||
|
|
||||||
config CGROUP_PERF
|
Currently, CFQ IO scheduler uses it to recognize task groups and
|
||||||
bool "Perf controller"
|
control disk bandwidth allocation (proportional time slice allocation)
|
||||||
depends on PERF_EVENTS && CGROUPS
|
to such task groups. It is also used by bio throttling logic in
|
||||||
help
|
block layer to implement upper limit in IO rates on a device.
|
||||||
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.
|
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
|
menuconfig CGROUP_SCHED
|
||||||
bool "CPU controller"
|
bool "CPU controller"
|
||||||
@ -1103,41 +1054,90 @@ config RT_GROUP_SCHED
|
|||||||
|
|
||||||
endif #CGROUP_SCHED
|
endif #CGROUP_SCHED
|
||||||
|
|
||||||
config BLK_CGROUP
|
config CGROUP_PIDS
|
||||||
bool "IO controller"
|
bool "PIDs controller"
|
||||||
depends on BLOCK
|
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
|
default n
|
||||||
---help---
|
help
|
||||||
Generic block IO controller cgroup interface. This is the common
|
Provides a cgroup controller for HugeTLB pages.
|
||||||
cgroup interface which should be used by various IO controlling
|
When you enable this, you can put a per cgroup limit on HugeTLB usage.
|
||||||
policies.
|
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
|
config CPUSETS
|
||||||
control disk bandwidth allocation (proportional time slice allocation)
|
bool "Cpuset controller"
|
||||||
to such task groups. It is also used by bio throttling logic in
|
help
|
||||||
block layer to implement upper limit in IO rates on a device.
|
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.
|
Say N if unsure.
|
||||||
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 PROC_PID_CPUSET
|
||||||
|
bool "Include legacy /proc/<pid>/cpuset file"
|
||||||
config DEBUG_BLK_CGROUP
|
depends on CPUSETS
|
||||||
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
|
default y
|
||||||
|
|
||||||
|
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
|
||||||
|
This option enables a simple controller that exports
|
||||||
|
debugging information about the cgroups framework.
|
||||||
|
|
||||||
|
Say N.
|
||||||
|
|
||||||
endif # CGROUPS
|
endif # CGROUPS
|
||||||
|
|
||||||
config CHECKPOINT_RESTORE
|
config CHECKPOINT_RESTORE
|
||||||
|
Loading…
Reference in New Issue
Block a user