This pathchset support dynamic affinity feature.
Dynamic affinity set preferred cpus for task. When the utilization of
taskgroup's preferred cpu is low, task only run in cpus preferred to
enhance cpu resource locality and reduce interference between task cgroups,
otherwise task can burst preferred cpus to use external cpu within
cpus allowed.
Hui Tang (1):
sched: Add cmdline for dynamic affinity
tanghui (6):
sched: Introduce dynamic affinity for cfs scheduler
cpuset: Introduce new interface for scheduler dynamic affinity
sched: Adjust wakeup cpu range according CPU util dynamicly
sched: Adjust cpu allowed in load balance dynamicly
sched: Add statistics for scheduler dynamic affinity
config: enable CONFIG_QOS_SCHED_DYNAMIC_AFFINITY by default
arch/arm64/configs/openeuler_defconfig | 1 +
arch/x86/configs/openeuler_defconfig | 1 +
fs/proc/base.c | 73 +++++++++++
include/linux/sched.h | 22 ++++
include/linux/sched/sysctl.h | 3 +
init/Kconfig | 10 ++
init/init_task.c | 3 +
kernel/cgroup/cpuset.c | 153 ++++++++++++++++++++++-
kernel/fork.c | 16 +++
kernel/sched/core.c | 98 +++++++++++++++
kernel/sched/debug.c | 6 +
kernel/sched/fair.c | 162 +++++++++++++++++++++++++
kernel/sysctl.c | 11 ++
13 files changed, 558 insertions(+), 1 deletion(-)
--
2.17.1