diff options
Diffstat (limited to 'init')
-rw-r--r-- | init/Kconfig | 22 | ||||
-rw-r--r-- | init/init_task.c | 2 | ||||
-rw-r--r-- | init/main.c | 2 |
3 files changed, 24 insertions, 2 deletions
diff --git a/init/Kconfig b/init/Kconfig index d96127ebc44e..ec1021fd3371 100644 --- a/init/Kconfig +++ b/init/Kconfig | |||
@@ -931,6 +931,28 @@ config RT_GROUP_SCHED | |||
931 | 931 | ||
932 | endif #CGROUP_SCHED | 932 | endif #CGROUP_SCHED |
933 | 933 | ||
934 | config UCLAMP_TASK_GROUP | ||
935 | bool "Utilization clamping per group of tasks" | ||
936 | depends on CGROUP_SCHED | ||
937 | depends on UCLAMP_TASK | ||
938 | default n | ||
939 | help | ||
940 | This feature enables the scheduler to track the clamped utilization | ||
941 | of each CPU based on RUNNABLE tasks currently scheduled on that CPU. | ||
942 | |||
943 | When this option is enabled, the user can specify a min and max | ||
944 | CPU bandwidth which is allowed for each single task in a group. | ||
945 | The max bandwidth allows to clamp the maximum frequency a task | ||
946 | can use, while the min bandwidth allows to define a minimum | ||
947 | frequency a task will always use. | ||
948 | |||
949 | When task group based utilization clamping is enabled, an eventually | ||
950 | specified task-specific clamp value is constrained by the cgroup | ||
951 | specified clamp value. Both minimum and maximum task clamping cannot | ||
952 | be bigger than the corresponding clamping defined at task group level. | ||
953 | |||
954 | If in doubt, say N. | ||
955 | |||
934 | config CGROUP_PIDS | 956 | config CGROUP_PIDS |
935 | bool "PIDs controller" | 957 | bool "PIDs controller" |
936 | help | 958 | help |
diff --git a/init/init_task.c b/init/init_task.c index 7ab773b9b3cd..bfe06c53b14e 100644 --- a/init/init_task.c +++ b/init/init_task.c | |||
@@ -174,7 +174,7 @@ struct task_struct init_task | |||
174 | #ifdef CONFIG_FUNCTION_GRAPH_TRACER | 174 | #ifdef CONFIG_FUNCTION_GRAPH_TRACER |
175 | .ret_stack = NULL, | 175 | .ret_stack = NULL, |
176 | #endif | 176 | #endif |
177 | #if defined(CONFIG_TRACING) && defined(CONFIG_PREEMPT) | 177 | #if defined(CONFIG_TRACING) && defined(CONFIG_PREEMPTION) |
178 | .trace_recursion = 0, | 178 | .trace_recursion = 0, |
179 | #endif | 179 | #endif |
180 | #ifdef CONFIG_LIVEPATCH | 180 | #ifdef CONFIG_LIVEPATCH |
diff --git a/init/main.c b/init/main.c index 96f8d5af52d6..653693da8da6 100644 --- a/init/main.c +++ b/init/main.c | |||
@@ -433,7 +433,7 @@ noinline void __ref rest_init(void) | |||
433 | 433 | ||
434 | /* | 434 | /* |
435 | * Enable might_sleep() and smp_processor_id() checks. | 435 | * Enable might_sleep() and smp_processor_id() checks. |
436 | * They cannot be enabled earlier because with CONFIG_PREEMPT=y | 436 | * They cannot be enabled earlier because with CONFIG_PREEMPTION=y |
437 | * kernel_thread() would trigger might_sleep() splats. With | 437 | * kernel_thread() would trigger might_sleep() splats. With |
438 | * CONFIG_PREEMPT_VOLUNTARY=y the init task might have scheduled | 438 | * CONFIG_PREEMPT_VOLUNTARY=y the init task might have scheduled |
439 | * already, but it's stuck on the kthreadd_done completion. | 439 | * already, but it's stuck on the kthreadd_done completion. |