diff options
author | Johannes Weiner <hannes@cmpxchg.org> | 2015-12-17 17:19:57 -0500 |
---|---|---|
committer | Tejun Heo <tj@kernel.org> | 2015-12-18 12:43:15 -0500 |
commit | 6bf024e69333f9371c634aa4cf04c95da86697f4 (patch) | |
tree | 3ae791b7a143bf18f5714d60f4330cf66bf70809 /init | |
parent | a0166ec4b0996b259f24a831c6ca8d06ecd7e59f (diff) |
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>
Diffstat (limited to 'init')
-rw-r--r-- | init/Kconfig | 214 |
1 files changed, 107 insertions, 107 deletions
diff --git a/init/Kconfig b/init/Kconfig index 07086e7ad61d..f8754f502c36 100644 --- a/init/Kconfig +++ b/init/Kconfig | |||
@@ -940,64 +940,6 @@ menuconfig CGROUPS | |||
940 | 940 | ||
941 | if CGROUPS | 941 | if CGROUPS |
942 | 942 | ||
943 | config CGROUP_DEBUG | ||
944 | bool "Example controller" | ||
945 | default n | ||
946 | help | ||
947 | This option enables a simple controller that exports | ||
948 | debugging information about the cgroups framework. | ||
949 | |||
950 | Say N. | ||
951 | |||
952 | config CGROUP_FREEZER | ||
953 | bool "Freezer controller" | ||
954 | help | ||
955 | Provides a way to freeze and unfreeze all tasks in a | ||
956 | cgroup. | ||
957 | |||
958 | config CGROUP_PIDS | ||
959 | bool "PIDs controller" | ||
960 | help | ||
961 | Provides enforcement of process number limits in the scope of a | ||
962 | cgroup. Any attempt to fork more processes than is allowed in the | ||
963 | cgroup will fail. PIDs are fundamentally a global resource because it | ||
964 | is fairly trivial to reach PID exhaustion before you reach even a | ||
965 | conservative kmemcg limit. As a result, it is possible to grind a | ||
966 | system to halt without being limited by other cgroup policies. The | ||
967 | PIDs cgroup subsystem is designed to stop this from happening. | ||
968 | |||
969 | It should be noted that organisational operations (such as attaching | ||
970 | to a cgroup hierarchy will *not* be blocked by the PIDs subsystem), | ||
971 | since the PIDs limit only affects a process's ability to fork, not to | ||
972 | attach to a cgroup. | ||
973 | |||
974 | config CGROUP_DEVICE | ||
975 | bool "Device controller" | ||
976 | help | ||
977 | Provides a cgroup controller implementing whitelists for | ||
978 | devices which a process in the cgroup can mknod or open. | ||
979 | |||
980 | config CPUSETS | ||
981 | bool "Cpuset controller" | ||
982 | help | ||
983 | This option will let you create and manage CPUSETs which | ||
984 | allow dynamically partitioning a system into sets of CPUs and | ||
985 | Memory Nodes and assigning tasks to run only within those sets. | ||
986 | This is primarily useful on large SMP or NUMA systems. | ||
987 | |||
988 | Say N if unsure. | ||
989 | |||
990 | config PROC_PID_CPUSET | ||
991 | bool "Include legacy /proc/<pid>/cpuset file" | ||
992 | depends on CPUSETS | ||
993 | default y | ||
994 | |||
995 | config CGROUP_CPUACCT | ||
996 | bool "Simple CPU accounting controller" | ||
997 | help | ||
998 | Provides a simple controller for monitoring the | ||
999 | total CPU consumed by the tasks in a cgroup. | ||
1000 | |||
1001 | config PAGE_COUNTER | 943 | config PAGE_COUNTER |
1002 | bool | 944 | bool |
1003 | 945 | ||
@@ -1039,31 +981,40 @@ config MEMCG_KMEM | |||
1039 | the kmem extension can use it to guarantee that no group of processes | 981 | the kmem extension can use it to guarantee that no group of processes |
1040 | will ever exhaust kernel resources alone. | 982 | will ever exhaust kernel resources alone. |
1041 | 983 | ||
1042 | config CGROUP_HUGETLB | 984 | config BLK_CGROUP |
1043 | bool "HugeTLB controller" | 985 | bool "IO controller" |
1044 | depends on HUGETLB_PAGE | 986 | depends on BLOCK |
1045 | select PAGE_COUNTER | ||
1046 | default n | 987 | default n |
1047 | help | 988 | ---help--- |
1048 | Provides a cgroup controller for HugeTLB pages. | 989 | Generic block IO controller cgroup interface. This is the common |
1049 | When you enable this, you can put a per cgroup limit on HugeTLB usage. | 990 | cgroup interface which should be used by various IO controlling |
1050 | The limit is enforced during page fault. Since HugeTLB doesn't | 991 | policies. |
1051 | support page reclaim, enforcing the limit at page fault time implies | ||
1052 | that, the application will get SIGBUS signal if it tries to access | ||
1053 | HugeTLB pages beyond its limit. This requires the application to know | ||
1054 | beforehand how much HugeTLB pages it would require for its use. The | ||
1055 | control group is tracked in the third page lru pointer. This means | ||
1056 | that we cannot use the controller with huge page less than 3 pages. | ||
1057 | 992 | ||
1058 | config CGROUP_PERF | 993 | Currently, CFQ IO scheduler uses it to recognize task groups and |
1059 | bool "Perf controller" | 994 | control disk bandwidth allocation (proportional time slice allocation) |
1060 | depends on PERF_EVENTS && CGROUPS | 995 | to such task groups. It is also used by bio throttling logic in |
1061 | help | 996 | block layer to implement upper limit in IO rates on a device. |
1062 | This option extends the perf per-cpu mode to restrict monitoring | ||
1063 | to threads which belong to the cgroup specified and run on the | ||
1064 | designated cpu. | ||
1065 | 997 | ||
1066 | Say N if unsure. | 998 | This option only enables generic Block IO controller infrastructure. |
999 | One needs to also enable actual IO controlling logic/policy. For | ||
1000 | enabling proportional weight division of disk bandwidth in CFQ, set | ||
1001 | CONFIG_CFQ_GROUP_IOSCHED=y; for enabling throttling policy, set | ||
1002 | CONFIG_BLK_DEV_THROTTLING=y. | ||
1003 | |||
1004 | See Documentation/cgroups/blkio-controller.txt for more information. | ||
1005 | |||
1006 | config DEBUG_BLK_CGROUP | ||
1007 | bool "IO controller debugging" | ||
1008 | depends on BLK_CGROUP | ||
1009 | default n | ||
1010 | ---help--- | ||
1011 | Enable some debugging help. Currently it exports additional stat | ||
1012 | files in a cgroup which can be useful for debugging. | ||
1013 | |||
1014 | config CGROUP_WRITEBACK | ||
1015 | bool | ||
1016 | depends on MEMCG && BLK_CGROUP | ||
1017 | default y | ||
1067 | 1018 | ||
1068 | menuconfig CGROUP_SCHED | 1019 | menuconfig CGROUP_SCHED |
1069 | bool "CPU controller" | 1020 | bool "CPU controller" |
@@ -1103,40 +1054,89 @@ config RT_GROUP_SCHED | |||
1103 | 1054 | ||
1104 | endif #CGROUP_SCHED | 1055 | endif #CGROUP_SCHED |
1105 | 1056 | ||
1106 | config BLK_CGROUP | 1057 | config CGROUP_PIDS |
1107 | bool "IO controller" | 1058 | bool "PIDs controller" |
1108 | depends on BLOCK | 1059 | help |
1060 | Provides enforcement of process number limits in the scope of a | ||
1061 | cgroup. Any attempt to fork more processes than is allowed in the | ||
1062 | cgroup will fail. PIDs are fundamentally a global resource because it | ||
1063 | is fairly trivial to reach PID exhaustion before you reach even a | ||
1064 | conservative kmemcg limit. As a result, it is possible to grind a | ||
1065 | system to halt without being limited by other cgroup policies. The | ||
1066 | PIDs cgroup subsystem is designed to stop this from happening. | ||
1067 | |||
1068 | It should be noted that organisational operations (such as attaching | ||
1069 | to a cgroup hierarchy will *not* be blocked by the PIDs subsystem), | ||
1070 | since the PIDs limit only affects a process's ability to fork, not to | ||
1071 | attach to a cgroup. | ||
1072 | |||
1073 | config CGROUP_FREEZER | ||
1074 | bool "Freezer controller" | ||
1075 | help | ||
1076 | Provides a way to freeze and unfreeze all tasks in a | ||
1077 | cgroup. | ||
1078 | |||
1079 | config CGROUP_HUGETLB | ||
1080 | bool "HugeTLB controller" | ||
1081 | depends on HUGETLB_PAGE | ||
1082 | select PAGE_COUNTER | ||
1109 | default n | 1083 | default n |
1110 | ---help--- | 1084 | help |
1111 | Generic block IO controller cgroup interface. This is the common | 1085 | Provides a cgroup controller for HugeTLB pages. |
1112 | cgroup interface which should be used by various IO controlling | 1086 | When you enable this, you can put a per cgroup limit on HugeTLB usage. |
1113 | policies. | 1087 | The limit is enforced during page fault. Since HugeTLB doesn't |
1088 | support page reclaim, enforcing the limit at page fault time implies | ||
1089 | that, the application will get SIGBUS signal if it tries to access | ||
1090 | HugeTLB pages beyond its limit. This requires the application to know | ||
1091 | beforehand how much HugeTLB pages it would require for its use. The | ||
1092 | control group is tracked in the third page lru pointer. This means | ||
1093 | that we cannot use the controller with huge page less than 3 pages. | ||
1114 | 1094 | ||
1115 | Currently, CFQ IO scheduler uses it to recognize task groups and | 1095 | config CPUSETS |
1116 | control disk bandwidth allocation (proportional time slice allocation) | 1096 | bool "Cpuset controller" |
1117 | to such task groups. It is also used by bio throttling logic in | 1097 | help |
1118 | block layer to implement upper limit in IO rates on a device. | 1098 | This option will let you create and manage CPUSETs which |
1099 | allow dynamically partitioning a system into sets of CPUs and | ||
1100 | Memory Nodes and assigning tasks to run only within those sets. | ||
1101 | This is primarily useful on large SMP or NUMA systems. | ||
1119 | 1102 | ||
1120 | This option only enables generic Block IO controller infrastructure. | 1103 | Say N if unsure. |
1121 | One needs to also enable actual IO controlling logic/policy. For | ||
1122 | enabling proportional weight division of disk bandwidth in CFQ, set | ||
1123 | CONFIG_CFQ_GROUP_IOSCHED=y; for enabling throttling policy, set | ||
1124 | CONFIG_BLK_DEV_THROTTLING=y. | ||
1125 | 1104 | ||
1126 | See Documentation/cgroups/blkio-controller.txt for more information. | 1105 | config PROC_PID_CPUSET |
1106 | bool "Include legacy /proc/<pid>/cpuset file" | ||
1107 | depends on CPUSETS | ||
1108 | default y | ||
1127 | 1109 | ||
1128 | config DEBUG_BLK_CGROUP | 1110 | config CGROUP_DEVICE |
1129 | bool "IO controller debugging" | 1111 | bool "Device controller" |
1130 | depends on BLK_CGROUP | 1112 | help |
1113 | Provides a cgroup controller implementing whitelists for | ||
1114 | devices which a process in the cgroup can mknod or open. | ||
1115 | |||
1116 | config CGROUP_CPUACCT | ||
1117 | bool "Simple CPU accounting controller" | ||
1118 | help | ||
1119 | Provides a simple controller for monitoring the | ||
1120 | total CPU consumed by the tasks in a cgroup. | ||
1121 | |||
1122 | config CGROUP_PERF | ||
1123 | bool "Perf controller" | ||
1124 | depends on PERF_EVENTS | ||
1125 | help | ||
1126 | This option extends the perf per-cpu mode to restrict monitoring | ||
1127 | to threads which belong to the cgroup specified and run on the | ||
1128 | designated cpu. | ||
1129 | |||
1130 | Say N if unsure. | ||
1131 | |||
1132 | config CGROUP_DEBUG | ||
1133 | bool "Example controller" | ||
1131 | default n | 1134 | default n |
1132 | ---help--- | 1135 | help |
1133 | Enable some debugging help. Currently it exports additional stat | 1136 | This option enables a simple controller that exports |
1134 | files in a cgroup which can be useful for debugging. | 1137 | debugging information about the cgroups framework. |
1135 | 1138 | ||
1136 | config CGROUP_WRITEBACK | 1139 | Say N. |
1137 | bool | ||
1138 | depends on MEMCG && BLK_CGROUP | ||
1139 | default y | ||
1140 | 1140 | ||
1141 | endif # CGROUPS | 1141 | endif # CGROUPS |
1142 | 1142 | ||