Steal tasks to improve CPU utilization, backported from branch 'kernel-4.19'.
Cheng Jian (3): disable stealing by default sched/fair: introduce SCHED_STEAL config: enable CONFIG_SCHED_STEAL by default
Steve Sistare (10): sched: Provide sparsemask, a reduced contention bitmap sched/topology: Provide hooks to allocate data shared per LLC sched/topology: Provide cfs_overload_cpus bitmap sched/fair: Dynamically update cfs_overload_cpus sched/fair: Hoist idle_stamp up from idle_balance sched/fair: Generalize the detach_task interface sched/fair: Provide can_migrate_task_llc sched/fair: Steal work from an overloaded CPU when CPU goes idle sched/fair: disable stealing if too many NUMA nodes sched/fair: Provide idle search schedstats
arch/arm64/configs/euleros_defconfig | 1 + arch/arm64/configs/hulk_defconfig | 1 + arch/arm64/configs/openeuler_defconfig | 1 + arch/arm64/configs/storage_ci_defconfig | 1 + arch/arm64/configs/syzkaller_defconfig | 1 + arch/x86/configs/hulk_defconfig | 1 + arch/x86/configs/openeuler_defconfig | 1 + arch/x86/configs/storage_ci_defconfig | 1 + include/linux/sched/topology.h | 3 + init/Kconfig | 15 + kernel/sched/core.c | 35 ++- kernel/sched/fair.c | 367 ++++++++++++++++++++++-- kernel/sched/features.h | 8 + kernel/sched/sched.h | 20 ++ kernel/sched/sparsemask.h | 210 ++++++++++++++ kernel/sched/stats.c | 15 + kernel/sched/stats.h | 20 ++ kernel/sched/topology.c | 141 ++++++++- 18 files changed, 810 insertions(+), 32 deletions(-) create mode 100644 kernel/sched/sparsemask.h