[GIT PULL] scheduler updates for v5.6

From: Ingo Molnar
Date: Tue Jan 28 2020 - 11:14:53 EST


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: afa70d941f663c69c9a64ec1021bbcfa82f0e54a sched/fair: Define sched_idle_cpu() only for SMP configurations

These were the main changes in this cycle:

- More -rt motivated separation of CONFIG_PREEMPT and CONFIG_PREEMPTION.

- Add more low level scheduling topology sanity checks and warnings to
filter out nonsensical topologies that break scheduling.

- Extend uclamp constraints to influence wakeup CPU placement

- Make the RT scheduler more aware of asymmetric topologies and CPU
capacities, via uclamp metrics, if CONFIG_UCLAMP_TASK=y

- Make idle CPU selection more consistent

- Various fixes, smaller cleanups, updates and enhancements - please see
the git log for details.

Thanks,

Ingo

------------------>
Alex Shi (1):
sched/cputime: move rq parameter in irqtime_account_process_tick

Cheng Jian (1):
sched/fair: Optimize select_idle_cpu

Frederic Weisbecker (2):
sched: Spare resched IPI when prio changes on a single fair task
sched: Use fair:prio_changed() instead of ad-hoc implementation

Hewenliang (1):
idle: fix spelling mistake "iterrupts" -> "interrupts"

Jisheng Zhang (1):
watchdog: Remove soft_lockup_hrtimer_cnt and related code

Li Guanglei (1):
sched/core: Fix size of rq::uclamp initialization

Oleg Nesterov (1):
sched/wait: fix ___wait_var_event(exclusive)

Peng Liu (1):
sched/fair: Fix sgc->{min,max}_capacity calculation for SD_OVERLAP

Peng Wang (2):
schied/fair: Skip calculating @contrib without load
sched/fair: calculate delta runnable load only when it's needed

Peter Zijlstra (1):
cpu/hotplug, stop_machine: Fix stop_machine vs hotplug order

Qais Yousef (2):
sched/rt: Make RT capacity-aware
sched/uclamp: Fix a bug in propagating uclamp value in new cgroups

Qian Cai (1):
sched/core: Remove unused variable from set_user_nice()

Sebastian Andrzej Siewior (3):
sched/rt, locking: Use CONFIG_PREEMPTION
sched/core: Use CONFIG_PREEMPTION
sched/rt, workqueue: Use PREEMPTION

Thomas Gleixner (24):
sched/rt, ARM: Use CONFIG_PREEMPTION
sched/rt, arm64: Use CONFIG_PREEMPTION
sched/rt, powerpc: Use CONFIG_PREEMPTION
sched/rt, ARC: Use CONFIG_PREEMPTION
sched/rt, c6x: Use CONFIG_PREEMPTION
sched/rt, csky: Use CONFIG_PREEMPTION
sched/rt, h8300: Use CONFIG_PREEMPTION
sched/rt, hexagon: Use CONFIG_PREEMPTION
sched/rt, ia64: Use CONFIG_PREEMPTION
sched/rt, microblaze: Use CONFIG_PREEMPTION
sched/rt, MIPS: Use CONFIG_PREEMPTION
sched/rt, nds32: Use CONFIG_PREEMPTION
sched/rt, nios2: Use CONFIG_PREEMPTION
sched/rt, parisc: Use CONFIG_PREEMPTION
sched/rt, riscv: Use CONFIG_PREEMPTION
sched/rt, s390: Use CONFIG_PREEMPTION
sched/rt, sh: Use CONFIG_PREEMPTION
sched/rt, sparc: Use CONFIG_PREEMPTION
sched/rt, xtensa: Use CONFIG_PREEMPTION
sched/rt, net: Use CONFIG_PREEMPTION.patch
sched/rt, xen: Use CONFIG_PREEMPTION
sched/rt, fs: Use CONFIG_PREEMPTION
sched/rt, btrfs: Use CONFIG_PREEMPTION
sched/rt, mm: Use CONFIG_PREEMPTION

Valentin Schneider (6):
sched/uclamp: Remove uclamp_util()
sched/uclamp: Make uclamp util helpers use and return UL values
sched/uclamp: Rename uclamp_util_with() into uclamp_rq_util_with()
sched/fair: Make task_fits_capacity() consider uclamp restrictions
sched/fair: Make EAS wakeup placement consider uclamp restrictions
sched/topology: Assert non-NUMA topology masks don't (partially) overlap

Vincent Guittot (2):
sched/fair : Improve update_sd_pick_busiest for spare capacity case
sched/fair: Remove redundant call to cpufreq_update_util()

Viresh Kumar (3):
sched/fair: Make sched-idle CPU selection consistent throughout
sched/fair: Load balance aggressively for SCHED_IDLE CPUs
sched/fair: Define sched_idle_cpu() only for SMP configurations

Wang Long (1):
sched/psi: create /proc/pressure and /proc/pressure/{io|memory|cpu} only when psi enabled

Wei Li (1):
sched/debug: Reset watchdog on all CPUs while processing sysrq-t

Yangtao Li (2):
stop_machine: remove try_stop_cpus helper
stop_machine: Make stop_cpus() static

Zhenzhong Duan (1):
sched/clock: Use static_branch_likely() with sched_clock_running


arch/arc/kernel/entry.S | 6 +-
arch/arm/include/asm/switch_to.h | 2 +-
arch/arm/kernel/entry-armv.S | 4 +-
arch/arm/kernel/traps.c | 2 +
arch/arm/mm/cache-v7.S | 4 +-
arch/arm/mm/cache-v7m.S | 4 +-
arch/arm64/Kconfig | 52 +++++------
arch/arm64/crypto/sha256-glue.c | 2 +-
arch/arm64/include/asm/assembler.h | 6 +-
arch/arm64/include/asm/preempt.h | 4 +-
arch/arm64/kernel/entry.S | 2 +-
arch/arm64/kernel/traps.c | 3 +
arch/c6x/kernel/entry.S | 8 +-
arch/csky/kernel/entry.S | 4 +-
arch/h8300/kernel/entry.S | 6 +-
arch/hexagon/kernel/vm_entry.S | 6 +-
arch/ia64/kernel/entry.S | 12 +--
arch/ia64/kernel/kprobes.c | 2 +-
arch/microblaze/kernel/entry.S | 2 +-
arch/mips/include/asm/asmmacro.h | 4 +-
arch/mips/kernel/entry.S | 6 +-
arch/nds32/Kconfig | 2 +-
arch/nds32/kernel/ex-exit.S | 4 +-
arch/nios2/kernel/entry.S | 2 +-
arch/parisc/Kconfig | 2 +-
arch/parisc/kernel/entry.S | 10 +--
arch/powerpc/Kconfig | 2 +-
arch/powerpc/kernel/entry_32.S | 4 +-
arch/powerpc/kernel/entry_64.S | 4 +-
arch/riscv/kernel/entry.S | 4 +-
arch/s390/Kconfig | 2 +-
arch/s390/include/asm/preempt.h | 4 +-
arch/s390/kernel/dumpstack.c | 2 +
arch/s390/kernel/entry.S | 2 +-
arch/sh/Kconfig | 2 +-
arch/sh/kernel/cpu/sh5/entry.S | 4 +-
arch/sh/kernel/entry-common.S | 4 +-
arch/sparc/Kconfig | 2 +-
arch/sparc/kernel/rtrap_64.S | 2 +-
arch/xtensa/kernel/entry.S | 2 +-
arch/xtensa/kernel/traps.c | 7 +-
drivers/xen/preempt.c | 4 +-
fs/btrfs/volumes.h | 2 +-
fs/stack.c | 6 +-
include/linux/fs.h | 4 +-
include/linux/genhd.h | 6 +-
include/linux/sched/cpufreq.h | 1 -
include/linux/stop_machine.h | 16 ----
include/xen/xen-ops.h | 4 +-
kernel/Kconfig.locks | 12 +--
kernel/cpu.c | 13 ++-
kernel/sched/clock.c | 6 +-
kernel/sched/core.c | 34 +++++---
kernel/sched/cpufreq_schedutil.c | 2 +-
kernel/sched/cpupri.c | 25 +++++-
kernel/sched/cpupri.h | 4 +-
kernel/sched/cputime.c | 15 ++--
kernel/sched/debug.c | 11 ++-
kernel/sched/fair.c | 171 ++++++++++++++++++++-----------------
kernel/sched/idle.c | 2 +-
kernel/sched/pelt.c | 20 ++++-
kernel/sched/psi.c | 10 ++-
kernel/sched/rt.c | 83 ++++++++++++++----
kernel/sched/sched.h | 24 ++----
kernel/sched/topology.c | 39 +++++++++
kernel/sched/wait_bit.c | 1 +
kernel/stop_machine.c | 32 +------
kernel/watchdog.c | 3 -
kernel/workqueue.c | 2 +-
lib/Kconfig.debug | 2 +-
mm/memory.c | 2 +-
mm/slub.c | 12 +--
net/core/dev.c | 2 +-
73 files changed, 446 insertions(+), 332 deletions(-)