Scheduled task groups will bring coscheduling to Linux. The actual functionality will be added successively.
Signed-off-by: Jan H. Schönherr <jscho...@amazon.de> --- init/Kconfig | 11 +++++++++++ kernel/sched/Makefile | 1 + kernel/sched/cosched.c | 9 +++++++++ 3 files changed, 21 insertions(+) create mode 100644 kernel/sched/cosched.c diff --git a/init/Kconfig b/init/Kconfig index 1e234e2f1cba..78807f8f2cf7 100644 --- a/init/Kconfig +++ b/init/Kconfig @@ -762,6 +762,17 @@ config FAIR_GROUP_SCHED depends on CGROUP_SCHED default CGROUP_SCHED +config COSCHEDULING + bool "Coscheduling extension for SCHED_OTHER (EXPERIMENTAL)" + depends on FAIR_GROUP_SCHED && SMP + default n + help + This feature enables coscheduling for SCHED_OTHER. Unlike + regular task groups the system aims to run members of + scheduled task groups (STGs) simultaneously. + + Say N if unsure. + config CFS_BANDWIDTH bool "CPU bandwidth provisioning for FAIR_GROUP_SCHED" depends on FAIR_GROUP_SCHED diff --git a/kernel/sched/Makefile b/kernel/sched/Makefile index 7fe183404c38..f32781fe76c5 100644 --- a/kernel/sched/Makefile +++ b/kernel/sched/Makefile @@ -29,3 +29,4 @@ obj-$(CONFIG_CPU_FREQ) += cpufreq.o obj-$(CONFIG_CPU_FREQ_GOV_SCHEDUTIL) += cpufreq_schedutil.o obj-$(CONFIG_MEMBARRIER) += membarrier.o obj-$(CONFIG_CPU_ISOLATION) += isolation.o +obj-$(CONFIG_COSCHEDULING) += cosched.o diff --git a/kernel/sched/cosched.c b/kernel/sched/cosched.c new file mode 100644 index 000000000000..3bd4557ca5b7 --- /dev/null +++ b/kernel/sched/cosched.c @@ -0,0 +1,9 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Coscheduling extension for CFS. + * + * Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved. + * Author: Jan H. Schönherr <jscho...@amazon.de> + */ + +#include "sched.h" -- 2.9.3.1.gcba166c.dirty