diff options
Diffstat (limited to 'init/Kconfig')
-rw-r--r-- | init/Kconfig | 241 |
1 files changed, 114 insertions, 127 deletions
diff --git a/init/Kconfig b/init/Kconfig index 235c7a2c0d20..5481b49e8c3f 100644 --- a/init/Kconfig +++ b/init/Kconfig | |||
@@ -940,95 +940,24 @@ menuconfig CGROUPS | |||
940 | 940 | ||
941 | if CGROUPS | 941 | if CGROUPS |
942 | 942 | ||
943 | config CGROUP_DEBUG | ||
944 | bool "Example debug cgroup subsystem" | ||
945 | default n | ||
946 | help | ||
947 | This option enables a simple cgroup subsystem that | ||
948 | exports useful debugging information about the cgroups | ||
949 | framework. | ||
950 | |||
951 | Say N if unsure. | ||
952 | |||
953 | config CGROUP_FREEZER | ||
954 | bool "Freezer cgroup subsystem" | ||
955 | help | ||
956 | Provides a way to freeze and unfreeze all tasks in a | ||
957 | cgroup. | ||
958 | |||
959 | config CGROUP_PIDS | ||
960 | bool "PIDs cgroup subsystem" | ||
961 | help | ||
962 | Provides enforcement of process number limits in the scope of a | ||
963 | cgroup. Any attempt to fork more processes than is allowed in the | ||
964 | cgroup will fail. PIDs are fundamentally a global resource because it | ||
965 | is fairly trivial to reach PID exhaustion before you reach even a | ||
966 | conservative kmemcg limit. As a result, it is possible to grind a | ||
967 | system to halt without being limited by other cgroup policies. The | ||
968 | PIDs cgroup subsystem is designed to stop this from happening. | ||
969 | |||
970 | It should be noted that organisational operations (such as attaching | ||
971 | to a cgroup hierarchy will *not* be blocked by the PIDs subsystem), | ||
972 | since the PIDs limit only affects a process's ability to fork, not to | ||
973 | attach to a cgroup. | ||
974 | |||
975 | config CGROUP_DEVICE | ||
976 | bool "Device controller for cgroups" | ||
977 | help | ||
978 | Provides a cgroup implementing whitelists for devices which | ||
979 | a process in the cgroup can mknod or open. | ||
980 | |||
981 | config CPUSETS | ||
982 | bool "Cpuset support" | ||
983 | help | ||
984 | This option will let you create and manage CPUSETs which | ||
985 | allow dynamically partitioning a system into sets of CPUs and | ||
986 | Memory Nodes and assigning tasks to run only within those sets. | ||
987 | This is primarily useful on large SMP or NUMA systems. | ||
988 | |||
989 | Say N if unsure. | ||
990 | |||
991 | config PROC_PID_CPUSET | ||
992 | bool "Include legacy /proc/<pid>/cpuset file" | ||
993 | depends on CPUSETS | ||
994 | default y | ||
995 | |||
996 | config CGROUP_CPUACCT | ||
997 | bool "Simple CPU accounting cgroup subsystem" | ||
998 | help | ||
999 | Provides a simple Resource Controller for monitoring the | ||
1000 | total CPU consumed by the tasks in a cgroup. | ||
1001 | |||
1002 | config PAGE_COUNTER | 943 | config PAGE_COUNTER |
1003 | bool | 944 | bool |
1004 | 945 | ||
1005 | config MEMCG | 946 | config MEMCG |
1006 | bool "Memory Resource Controller for Control Groups" | 947 | bool "Memory controller" |
1007 | select PAGE_COUNTER | 948 | select PAGE_COUNTER |
1008 | select EVENTFD | 949 | select EVENTFD |
1009 | help | 950 | help |
1010 | Provides a memory resource controller that manages both anonymous | 951 | Provides control over the memory footprint of tasks in a cgroup. |
1011 | memory and page cache. (See Documentation/cgroups/memory.txt) | ||
1012 | 952 | ||
1013 | config MEMCG_SWAP | 953 | config MEMCG_SWAP |
1014 | bool "Memory Resource Controller Swap Extension" | 954 | bool "Swap controller" |
1015 | depends on MEMCG && SWAP | 955 | depends on MEMCG && SWAP |
1016 | help | 956 | help |
1017 | Add swap management feature to memory resource controller. When you | 957 | Provides control over the swap space consumed by tasks in a cgroup. |
1018 | enable this, you can limit mem+swap usage per cgroup. In other words, | 958 | |
1019 | when you disable this, memory resource controller has no cares to | ||
1020 | usage of swap...a process can exhaust all of the swap. This extension | ||
1021 | is useful when you want to avoid exhaustion swap but this itself | ||
1022 | adds more overheads and consumes memory for remembering information. | ||
1023 | Especially if you use 32bit system or small memory system, please | ||
1024 | be careful about enabling this. When memory resource controller | ||
1025 | is disabled by boot option, this will be automatically disabled and | ||
1026 | there will be no overhead from this. Even when you set this config=y, | ||
1027 | if boot option "swapaccount=0" is set, swap will not be accounted. | ||
1028 | Now, memory usage of swap_cgroup is 2 bytes per entry. If swap page | ||
1029 | size is 4096bytes, 512k per 1Gbytes of swap. | ||
1030 | config MEMCG_SWAP_ENABLED | 959 | config MEMCG_SWAP_ENABLED |
1031 | bool "Memory Resource Controller Swap Extension enabled by default" | 960 | bool "Swap controller enabled by default" |
1032 | depends on MEMCG_SWAP | 961 | depends on MEMCG_SWAP |
1033 | default y | 962 | default y |
1034 | help | 963 | help |
@@ -1052,34 +981,43 @@ config MEMCG_KMEM | |||
1052 | 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 |
1053 | will ever exhaust kernel resources alone. | 982 | will ever exhaust kernel resources alone. |
1054 | 983 | ||
1055 | config CGROUP_HUGETLB | 984 | config BLK_CGROUP |
1056 | bool "HugeTLB Resource Controller for Control Groups" | 985 | bool "IO controller" |
1057 | depends on HUGETLB_PAGE | 986 | depends on BLOCK |
1058 | select PAGE_COUNTER | ||
1059 | default n | 987 | default n |
1060 | help | 988 | ---help--- |
1061 | Provides a cgroup Resource Controller for HugeTLB pages. | 989 | Generic block IO controller cgroup interface. This is the common |
1062 | 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 |
1063 | The limit is enforced during page fault. Since HugeTLB doesn't | 991 | policies. |
1064 | support page reclaim, enforcing the limit at page fault time implies | ||
1065 | that, the application will get SIGBUS signal if it tries to access | ||
1066 | HugeTLB pages beyond its limit. This requires the application to know | ||
1067 | beforehand how much HugeTLB pages it would require for its use. The | ||
1068 | control group is tracked in the third page lru pointer. This means | ||
1069 | that we cannot use the controller with huge page less than 3 pages. | ||
1070 | 992 | ||
1071 | config CGROUP_PERF | 993 | Currently, CFQ IO scheduler uses it to recognize task groups and |
1072 | bool "Enable perf_event per-cpu per-container group (cgroup) monitoring" | 994 | control disk bandwidth allocation (proportional time slice allocation) |
1073 | depends on PERF_EVENTS && CGROUPS | 995 | to such task groups. It is also used by bio throttling logic in |
1074 | help | 996 | block layer to implement upper limit in IO rates on a device. |
1075 | This option extends the per-cpu mode to restrict monitoring to | ||
1076 | threads which belong to the cgroup specified and run on the | ||
1077 | designated cpu. | ||
1078 | 997 | ||
1079 | 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 | ||
1080 | 1018 | ||
1081 | menuconfig CGROUP_SCHED | 1019 | menuconfig CGROUP_SCHED |
1082 | bool "Group CPU scheduler" | 1020 | bool "CPU controller" |
1083 | default n | 1021 | default n |
1084 | help | 1022 | help |
1085 | This feature lets CPU scheduler recognize task groups and control CPU | 1023 | This feature lets CPU scheduler recognize task groups and control CPU |
@@ -1116,40 +1054,89 @@ config RT_GROUP_SCHED | |||
1116 | 1054 | ||
1117 | endif #CGROUP_SCHED | 1055 | endif #CGROUP_SCHED |
1118 | 1056 | ||
1119 | config BLK_CGROUP | 1057 | config CGROUP_PIDS |
1120 | bool "Block IO controller" | 1058 | bool "PIDs controller" |
1121 | 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 | ||
1122 | default n | 1083 | default n |
1123 | ---help--- | 1084 | help |
1124 | Generic block IO controller cgroup interface. This is the common | 1085 | Provides a cgroup controller for HugeTLB pages. |
1125 | 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. |
1126 | 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. | ||
1127 | 1094 | ||
1128 | Currently, CFQ IO scheduler uses it to recognize task groups and | 1095 | config CPUSETS |
1129 | control disk bandwidth allocation (proportional time slice allocation) | 1096 | bool "Cpuset controller" |
1130 | to such task groups. It is also used by bio throttling logic in | 1097 | help |
1131 | 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. | ||
1132 | 1102 | ||
1133 | This option only enables generic Block IO controller infrastructure. | 1103 | Say N if unsure. |
1134 | One needs to also enable actual IO controlling logic/policy. For | ||
1135 | enabling proportional weight division of disk bandwidth in CFQ, set | ||
1136 | CONFIG_CFQ_GROUP_IOSCHED=y; for enabling throttling policy, set | ||
1137 | CONFIG_BLK_DEV_THROTTLING=y. | ||
1138 | 1104 | ||
1139 | 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 | ||
1140 | 1109 | ||
1141 | config DEBUG_BLK_CGROUP | 1110 | config CGROUP_DEVICE |
1142 | bool "Enable Block IO controller debugging" | 1111 | bool "Device controller" |
1143 | 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" | ||
1144 | default n | 1134 | default n |
1145 | ---help--- | 1135 | help |
1146 | Enable some debugging help. Currently it exports additional stat | 1136 | This option enables a simple controller that exports |
1147 | files in a cgroup which can be useful for debugging. | 1137 | debugging information about the cgroups framework. |
1148 | 1138 | ||
1149 | config CGROUP_WRITEBACK | 1139 | Say N. |
1150 | bool | ||
1151 | depends on MEMCG && BLK_CGROUP | ||
1152 | default y | ||
1153 | 1140 | ||
1154 | endif # CGROUPS | 1141 | endif # CGROUPS |
1155 | 1142 | ||