aboutsummaryrefslogtreecommitdiffstats
path: root/init/Kconfig
diff options
context:
space:
mode:
Diffstat (limited to 'init/Kconfig')
-rw-r--r--init/Kconfig241
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
941if CGROUPS 941if CGROUPS
942 942
943config 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
953config CGROUP_FREEZER
954 bool "Freezer cgroup subsystem"
955 help
956 Provides a way to freeze and unfreeze all tasks in a
957 cgroup.
958
959config 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
975config 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
981config 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
991config PROC_PID_CPUSET
992 bool "Include legacy /proc/<pid>/cpuset file"
993 depends on CPUSETS
994 default y
995
996config 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
1002config PAGE_COUNTER 943config PAGE_COUNTER
1003 bool 944 bool
1004 945
1005config MEMCG 946config 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
1013config MEMCG_SWAP 953config 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.
1030config MEMCG_SWAP_ENABLED 959config 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
1055config CGROUP_HUGETLB 984config 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
1071config 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
1006config 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
1014config CGROUP_WRITEBACK
1015 bool
1016 depends on MEMCG && BLK_CGROUP
1017 default y
1080 1018
1081menuconfig CGROUP_SCHED 1019menuconfig 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
1117endif #CGROUP_SCHED 1055endif #CGROUP_SCHED
1118 1056
1119config BLK_CGROUP 1057config 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
1073config CGROUP_FREEZER
1074 bool "Freezer controller"
1075 help
1076 Provides a way to freeze and unfreeze all tasks in a
1077 cgroup.
1078
1079config 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 1095config 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. 1105config PROC_PID_CPUSET
1106 bool "Include legacy /proc/<pid>/cpuset file"
1107 depends on CPUSETS
1108 default y
1140 1109
1141config DEBUG_BLK_CGROUP 1110config 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
1116config 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
1122config 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
1132config 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
1149config CGROUP_WRITEBACK 1139 Say N.
1150 bool
1151 depends on MEMCG && BLK_CGROUP
1152 default y
1153 1140
1154endif # CGROUPS 1141endif # CGROUPS
1155 1142