Messages in this thread | | | Date | Mon, 30 Mar 2020 19:31:59 +0200 | From | Ingo Molnar <> | Subject | [GIT PULL] scheduler changes for v5.7 |
| |
Linus,
Please pull the latest sched-core-for-linus git tree from:
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git sched-core-for-linus
# HEAD: 313f16e2e35abb833eab5bdebc6ae30699adca18 Merge branch 'sched/rt' into sched/core, to pick up completed topic tree
The main changes in this cycle are:
- Various NUMA scheduling updates: harmonize the load-balancer and NUMA placement logic to not work against each other. The intended result is better locality, better utilization and fewer migrations.
- Introduce Thermal Pressure tracking and optimizations, to improve task placement on thermally overloaded systems.
- Implement frequency invariant scheduler accounting on (some) x86 CPUs. This is done by observing and sampling the 'recent' CPU frequency average at ~tick boundaries. The CPU provides this data via the APERF/MPERF MSRs. This hopefully makes our capacity estimates more precise and keeps tasks on the same CPU better even if it might seem overloaded at a lower momentary frequency. (As usual, turbo mode is a complication that we resolve by observing the maximum frequency and renormalizing to it.)
- Add asymmetric CPU capacity wakeup scan to improve capacity utilization on asymmetric topologies. (big.LITTLE systems)
- PSI fixes and optimizations.
- RT scheduling capacity awareness fixes & improvements.
- Optimize the CONFIG_RT_GROUP_SCHED constraints code.
- Misc fixes, cleanups and optimizations - see the changelog for details.
Thanks,
Ingo
------------------> Chris Wilson (1): sched/vtime: Prevent unstable evaluation of WARN(vtime->state)
Giovanni Gherdovich (6): x86, sched: Add support for frequency invariance x86, sched: Add support for frequency invariance on SKYLAKE_X x86, sched: Add support for frequency invariance on XEON_PHI_KNL/KNM x86, sched: Add support for frequency invariance on ATOM_GOLDMONT* x86, sched: Add support for frequency invariance on ATOM x86/intel_pstate: Handle runtime turbo disablement/enablement in frequency invariance
Ingo Molnar (1): thermal/cpu-cooling, sched/core: Move the arch_set_thermal_pressure() API to generic scheduler code
Jann Horn (1): threads: Update PID limit comment according to futex UAPI change
Johannes Weiner (3): psi: Fix cpu.pressure for cpu.max and competing cgroups psi: Optimize switching tasks inside shared cgroups MAINTAINERS: Add maintenance information for psi
Konstantin Khlebnikov (1): sched/rt: Optimize checking group RT scheduler constraints
Liang Chen (1): kthread: Do not preempt current task if it is going to call schedule()
Mel Gorman (8): sched/numa: Trace when no candidate CPU was found on the preferred node sched/numa: Distinguish between the different task_numa_migrate() failure cases sched/numa: Use similar logic to the load balancer for moving between domains with spare capacity sched/numa: Prefer using an idle CPU as a migration target instead of comparing tasks sched/numa: Find an alternative idle CPU if the CPU is part of an active NUMA balance sched/numa: Bias swapping tasks based on their preferred node sched/numa: Stop an exhastive search if a reasonable swap candidate or idle CPU is found sched/numa: Acquire RCU lock for checking idle cores during NUMA balancing
Michael Wang (1): sched: Avoid scale real weight down to zero
Morten Rasmussen (3): sched/fair: Add asymmetric CPU capacity wakeup scan sched/topology: Remove SD_BALANCE_WAKE on asymmetric capacity systems sched/fair: Remove wake_cap()
Paul Turner (1): sched/core: Distribute tasks within affinity masks
Qais Yousef (6): sched/rt: cpupri_find: Implement fallback mechanism for !fit case sched/rt: Re-instate old behavior in select_task_rq_rt() sched/rt: Optimize cpupri_find() on non-heterogenous systems sched/rt: Allow pulling unfitting task sched/rt: Remove unnecessary push for unfit tasks sched/rt: cpupri_find: Trigger a full search as fallback
Scott Wood (1): sched/core: Remove duplicate assignment in sched_tick_remote()
Srikar Dronamraju (1): sched/fair: Optimize select_idle_core()
Tao Zhou (1): sched/fair: Fix condition of avg_load calculation
Thara Gopinath (9): sched/pelt: Add support to track thermal pressure sched/topology: Add callback to read per CPU thermal pressure drivers/base/arch_topology: Add infrastructure to store and update instantaneous thermal pressure arm64/topology: Populate arch_scale_thermal_pressure() for arm64 platforms arm/topology: Populate arch_scale_thermal_pressure() for ARM platforms sched/fair: Enable periodic update of average thermal pressure sched/fair: Update cpu_capacity to reflect thermal pressure thermal/cpu-cooling: Update thermal pressure in case of a maximum frequency capping sched/fair: Enable tuning of decay period
Thomas Gleixner (2): sched/rt: Provide migrate_disable/enable() inlines sched: Provide cant_migrate()
Valentin Schneider (4): sched/core: Remove for_each_lower_domain() sched/fair: Fix kernel build warning in test_idle_cores() for !SMT NUMA sched/topology: Don't enable EAS on SMT systems arm64: defconfig: enable CONFIG_SCHED_SMT
Vincent Guittot (9): sched/fair: Reorder enqueue/dequeue_task_fair path sched/numa: Replace runnable_load_avg by load_avg sched/pelt: Remove unused runnable load average sched/pelt: Add a new runnable average signal sched/fair: Take into account runnable_avg to classify group sched/fair: Fix runnable_avg for throttled cfs sched/fair: Fix reordering of enqueue/dequeue_task_fair() sched/fair: Fix enqueue_task_fair warning sched/fair: Improve spreading of utilization
Yafang Shao (1): psi: Move PF_MEMSTALL out of task->flags
Yu Chen (1): sched/deadline: Make two functions static
Documentation/admin-guide/kernel-parameters.txt | 16 + Documentation/robust-futex-ABI.txt | 14 +- MAINTAINERS | 6 + arch/arm/include/asm/topology.h | 3 + arch/arm64/configs/defconfig | 1 + arch/arm64/include/asm/topology.h | 3 + arch/x86/include/asm/topology.h | 25 + arch/x86/kernel/smpboot.c | 290 ++++++++- drivers/cpufreq/intel_pstate.c | 1 + drivers/thermal/cpufreq_cooling.c | 19 +- include/linux/arch_topology.h | 10 + include/linux/cpumask.h | 7 + include/linux/kernel.h | 7 + include/linux/preempt.h | 30 + include/linux/psi.h | 2 + include/linux/psi_types.h | 10 +- include/linux/sched.h | 37 +- include/linux/sched/topology.h | 8 + include/linux/threads.h | 2 +- include/trace/events/sched.h | 53 +- init/Kconfig | 4 + kernel/kthread.c | 17 +- kernel/sched/core.c | 27 +- kernel/sched/cpupri.c | 158 +++-- kernel/sched/cpupri.h | 6 +- kernel/sched/cputime.c | 41 +- kernel/sched/deadline.c | 6 +- kernel/sched/debug.c | 17 +- kernel/sched/fair.c | 791 ++++++++++++++++-------- kernel/sched/pelt.c | 90 ++- kernel/sched/pelt.h | 31 + kernel/sched/psi.c | 111 +++- kernel/sched/rt.c | 66 +- kernel/sched/sched.h | 69 ++- kernel/sched/stats.h | 31 +- kernel/sched/topology.c | 27 +- lib/cpumask.c | 29 + 37 files changed, 1552 insertions(+), 513 deletions(-)
| |