[GIT PULL] Scheduler changes for v6.8

From: Ingo Molnar
Date: Mon Jan 08 2024 - 09:07:22 EST



Linus,

Please pull the latest sched/core git tree from:

git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git sched-core-2024-01-08

# HEAD: cdb3033e191fd03da2d7da23b9cd448dfa180a8e Merge branch 'sched/urgent' into sched/core, to pick up pending v6.7 fixes for the v6.8 merge window

Scheduler changes for v6.8:

- Energy scheduling:

- Consolidate how the max compute capacity is
used in the scheduler and how we calculate
the frequency for a level of utilization.

- Rework interface between the scheduler and
the schedutil governor

- Simplify the util_est logic

- Deadline scheduler:

- Work more towards reducing SCHED_DEADLINE
starvation of low priority tasks (e.g., SCHED_OTHER)
tasks when higher priority tasks monopolize CPU
cycles, via the introduction of 'deadline servers'
(nested/2-level scheduling).
"Fair servers" to make use of this facility are
not introduced yet.

- EEVDF:

- Introduce O(1) fastpath for EEVDF task selection

- NUMA balancing:

- Tune the NUMA-balancing vma scanning logic some more,
to better distribute the probability
of a particular vma getting scanned.

- Plus misc fixes, cleanups and updates.

Thanks,

Ingo

------------------>
Abel Wu (2):
sched/eevdf: Sort the rbtree by virtual deadline
sched/eevdf: O(1) fastpath for task selection

Elliot Berman (1):
freezer,sched: Clean saved_state when restoring it during thaw

Frederic Weisbecker (2):
sched/cpuidle: Comment about timers requirements VS idle handler
sched/timers: Explain why idle task schedules out on remote timer enqueue

Paul E. McKenney (1):
sched: Use WRITE_ONCE() for p->on_rq

Peter Zijlstra (6):
sched: Unify runtime accounting across classes
sched: Remove vruntime from trace_sched_stat_runtime()
sched: Unify more update_curr*()
sched/deadline: Collect sched_dl_entity initialization
sched/deadline: Move bandwidth accounting into {en,de}queue_dl_entity
sched/deadline: Introduce deadline servers

Pierre Gondois (1):
sched/fair: Use all little CPUs for CPU-bound workloads

Raghavendra K T (1):
sched/numa: Fix mm numa_scan_seq based unconditional scan

Vincent Guittot (13):
sched/pelt: Avoid underestimation of task utilization
sched/cpufreq: Rework schedutil governor performance estimation
sched/cpufreq: Rework iowait boost
sched/topology: Add a new arch_scale_freq_ref() method
cpufreq: Use the fixed and coherent frequency for scaling capacity
cpufreq/schedutil: Use a fixed reference frequency
energy_model: Use a fixed reference frequency
cpufreq/cppc: Move and rename cppc_cpufreq_{perf_to_khz|khz_to_perf}()
cpufreq/cppc: Set the frequency used for computing the capacity
arm64/amu: Use capacity_ref_freq() to set AMU ratio
sched/fair: Remove SCHED_FEAT(UTIL_EST_FASTUP, true)
sched/fair: Simplify util_est
sched/fair: Fix tg->load when offlining a CPU

Wang Jinchao (1):
sched/fair: Remove unused 'next_buddy_marked' local variable in check_preempt_wakeup_fair()

Wenyu Huang (1):
sched/doc: Update documentation after renames and synchronize Chinese version

Yiwei Lin (1):
sched/fair: Update min_vruntime for reweight_entity() correctly


Documentation/scheduler/sched-design-CFS.rst | 8 +-
Documentation/scheduler/schedutil.rst | 7 +-
.../zh_CN/scheduler/sched-design-CFS.rst | 8 +-
.../translations/zh_CN/scheduler/schedutil.rst | 7 +-
arch/arm/include/asm/topology.h | 1 +
arch/arm64/include/asm/topology.h | 1 +
arch/arm64/kernel/topology.c | 26 +-
arch/riscv/include/asm/topology.h | 1 +
drivers/acpi/cppc_acpi.c | 104 +++++
drivers/base/arch_topology.c | 56 ++-
drivers/cpufreq/cppc_cpufreq.c | 139 +-----
drivers/cpufreq/cpufreq.c | 4 +-
include/acpi/cppc_acpi.h | 2 +
include/linux/arch_topology.h | 8 +
include/linux/cpufreq.h | 1 +
include/linux/energy_model.h | 7 +-
include/linux/mm_types.h | 3 +
include/linux/sched.h | 75 ++--
include/linux/sched/topology.h | 8 +
include/trace/events/sched.h | 15 +-
kernel/freezer.c | 1 +
kernel/sched/core.c | 140 +++---
kernel/sched/cpufreq_schedutil.c | 90 ++--
kernel/sched/deadline.c | 477 +++++++++++++--------
kernel/sched/debug.c | 18 +-
kernel/sched/fair.c | 449 ++++++++++---------
kernel/sched/features.h | 1 -
kernel/sched/idle.c | 30 ++
kernel/sched/pelt.h | 4 +-
kernel/sched/rt.c | 15 +-
kernel/sched/sched.h | 135 ++----
kernel/sched/stop_task.c | 13 +-
32 files changed, 1054 insertions(+), 800 deletions(-)