From a0166ec4b0996b259f24a831c6ca8d06ecd7e59f Mon Sep 17 00:00:00 2001 From: Johannes Weiner Date: Thu, 17 Dec 2015 17:19:56 -0500 Subject: cgroup: clean up the kernel configuration menu nomenclature The config options for the different cgroup controllers use various terms: resource controller, cgroup subsystem, etc. Simplify this to "controller", which is clear enough in the cgroup context. Signed-off-by: Johannes Weiner Signed-off-by: Tejun Heo --- init/Kconfig | 65 ++++++++++++++++++++++++------------------------------------ 1 file changed, 26 insertions(+), 39 deletions(-) (limited to 'init/Kconfig') diff --git a/init/Kconfig b/init/Kconfig index c24b6f767bf0..07086e7ad61d 100644 --- a/init/Kconfig +++ b/init/Kconfig @@ -941,23 +941,22 @@ menuconfig CGROUPS if CGROUPS config CGROUP_DEBUG - bool "Example debug cgroup subsystem" + bool "Example controller" default n help - This option enables a simple cgroup subsystem that - exports useful debugging information about the cgroups - framework. + This option enables a simple controller that exports + debugging information about the cgroups framework. - Say N if unsure. + Say N. config CGROUP_FREEZER - bool "Freezer cgroup subsystem" + bool "Freezer controller" help Provides a way to freeze and unfreeze all tasks in a cgroup. config CGROUP_PIDS - bool "PIDs cgroup subsystem" + 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 @@ -973,13 +972,13 @@ config CGROUP_PIDS attach to a cgroup. config CGROUP_DEVICE - bool "Device controller for cgroups" + bool "Device controller" help - Provides a cgroup implementing whitelists for devices which - a process in the cgroup can mknod or open. + Provides a cgroup controller implementing whitelists for + devices which a process in the cgroup can mknod or open. config CPUSETS - bool "Cpuset support" + bool "Cpuset controller" help This option will let you create and manage CPUSETs which allow dynamically partitioning a system into sets of CPUs and @@ -994,41 +993,29 @@ config PROC_PID_CPUSET default y config CGROUP_CPUACCT - bool "Simple CPU accounting cgroup subsystem" + bool "Simple CPU accounting controller" help - Provides a simple Resource Controller for monitoring the + Provides a simple 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 @@ -1053,12 +1040,12 @@ config MEMCG_KMEM will ever exhaust kernel resources alone. config CGROUP_HUGETLB - bool "HugeTLB Resource Controller for Control Groups" + bool "HugeTLB controller" depends on HUGETLB_PAGE select PAGE_COUNTER default n help - Provides a cgroup Resource Controller for HugeTLB pages. + 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 @@ -1069,17 +1056,17 @@ config CGROUP_HUGETLB that we cannot use the controller with huge page less than 3 pages. config CGROUP_PERF - bool "Enable perf_event per-cpu per-container group (cgroup) monitoring" + bool "Perf controller" 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 + 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. menuconfig CGROUP_SCHED - bool "Group CPU scheduler" + bool "CPU controller" default n help This feature lets CPU scheduler recognize task groups and control CPU @@ -1117,7 +1104,7 @@ config RT_GROUP_SCHED endif #CGROUP_SCHED config BLK_CGROUP - bool "Block IO controller" + bool "IO controller" depends on BLOCK default n ---help--- @@ -1139,7 +1126,7 @@ config BLK_CGROUP See Documentation/cgroups/blkio-controller.txt for more information. config DEBUG_BLK_CGROUP - bool "Enable Block IO controller debugging" + bool "IO controller debugging" depends on BLK_CGROUP default n ---help--- -- cgit v1.2.3 From 6bf024e69333f9371c634aa4cf04c95da86697f4 Mon Sep 17 00:00:00 2001 From: Johannes Weiner Date: Thu, 17 Dec 2015 17:19:57 -0500 Subject: 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 Acked-by: Zefan Li Signed-off-by: Tejun Heo --- init/Kconfig | 214 +++++++++++++++++++++++++++++------------------------------ 1 file changed, 107 insertions(+), 107 deletions(-) (limited to 'init/Kconfig') diff --git a/init/Kconfig b/init/Kconfig index 07086e7ad61d..f8754f502c36 100644 --- a/init/Kconfig +++ b/init/Kconfig @@ -940,64 +940,6 @@ menuconfig 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//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 bool @@ -1039,31 +981,40 @@ 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 controller" - depends on HUGETLB_PAGE - select PAGE_COUNTER +config BLK_CGROUP + bool "IO controller" + depends on BLOCK default n - 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. + ---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 "Perf controller" - depends on PERF_EVENTS && CGROUPS - 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. + 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 "CPU controller" @@ -1103,40 +1054,89 @@ config RT_GROUP_SCHED endif #CGROUP_SCHED -config BLK_CGROUP - bool "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//cpuset file" + depends on CPUSETS + default y -config DEBUG_BLK_CGROUP - bool "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 -- cgit v1.2.3