lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <aIcdTI3e04W_RdM_@gmail.com>
Date: Mon, 28 Jul 2025 08:48:44 +0200
From: Ingo Molnar <mingo@...nel.org>
To: Linus Torvalds <torvalds@...ux-foundation.org>
Cc: linux-kernel@...r.kernel.org, Peter Zijlstra <peterz@...radead.org>,
	Thomas Gleixner <tglx@...utronix.de>,
	Juri Lelli <juri.lelli@...hat.com>,
	Vincent Guittot <vincent.guittot@...aro.org>,
	Dietmar Eggemann <dietmar.eggemann@....com>,
	Steven Rostedt <rostedt@...dmis.org>, Mel Gorman <mgorman@...e.de>,
	Tejun Heo <tj@...nel.org>, Valentin Schneider <vschneid@...hat.com>,
	Shrikanth Hegde <sshegde@...ux.ibm.com>
Subject: [GIT PULL] Scheduler updates for v6.17

Linus,

Please pull the latest sched/core Git tree from:

   git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git sched-core-2025-07-28

   # HEAD: 1b5f1454091e9e9fb5c944b3161acf4ec0894d0d sched/idle: Remove play_idle()

Scheduler updates for v6.17:

Core scheduler changes:

 - Better tracking of maximum lag of tasks in presence of different
   slices duration, for better handling of lag in the fair
   scheduler. (Vincent Guittot)

 - Clean up and standardize #if/#else/#endif markers throughout
   the entire scheduler code base (Ingo Molnar)

 - Make SMP unconditional: build the SMP scheduler's
   data structures and logic on UP kernel too, even though
   they are not used, to simplify the scheduler and remove
   around 200 #ifdef/[#else]/#endif blocks from the
   scheduler. (Ingo Molnar)

 - Reorganize cgroup bandwidth control interface handling
   for better interfacing with sched_ext (Tejun Heo)

Balancing:

 - Bump sd->max_newidle_lb_cost when newidle balance fails (Chris Mason)
 - Remove sched_domain_topology_level::flags to simplify the code (Prateek Nayak)
 - Simplify and clean up build_sched_topology() (Li Chen)
 - Optimize build_sched_topology() on large machines (Li Chen)

Real-time scheduling:

 - Add initial version of proxy execution: a mechanism for mutex-owning
   tasks to inherit the scheduling context of higher priority waiters.
   Currently limited to a single runqueue and conditional on CONFIG_EXPERT,
   and other limitations. (John Stultz, Peter Zijlstra, Valentin Schneider)

 - Deadline scheduler (Juri Lelli):

   - Fix dl_servers initialization order (Juri Lelli)
   - Fix DL scheduler's root domain reinitialization logic (Juri Lelli)
   - Fix accounting bugs after global limits change (Juri Lelli)
   - Fix scalability regression by implementing less agressive dl_server handling
     (Peter Zijlstra)

PSI:

 - Improve scalability by optimizing psi_group_change() cpu_clock() usage
   (Peter Zijlstra)

Rust changes:

 - Make Task, CondVar and PollCondVar methods inline to avoid unnecessary
   function calls (Kunwu Chan, Panagiotis Foliadis)

 - Add might_sleep() support for Rust code: Rust's "#[track_caller]"
   mechanism is used so that Rust's might_sleep() doesn't need to be
   defined as a macro (Fujita Tomonori)

 - Introduce file_from_location() (Boqun Feng)

Debugging & instrumentation:

 - Make clangd usable with scheduler source code files again (Peter Zijlstra)

 - tools: Add root_domains_dump.py which dumps root domains info (Juri Lelli)

 - tools: Add dl_bw_dump.py for printing bandwidth accounting info (Juri Lelli)

Misc cleanups & fixes:

 - Remove play_idle() (Feng Lee)

 - Fix check_preemption_disabled() (Sebastian Andrzej Siewior)

 - Do not call __put_task_struct() on RT if pi_blocked_on is set
   (Luis Claudio R. Goncalves)

 - Correct the comment in place_entity() (wang wei)

 Thanks,

	Ingo

------------------>
Boqun Feng (1):
      rust: Introduce file_from_location()

Chris Mason (1):
      sched/fair: Bump sd->max_newidle_lb_cost when newidle balance fails

FUJITA Tomonori (1):
      rust: task: Add Rust version of might_sleep()

Feng Lee (1):
      sched/idle: Remove play_idle()

Ingo Molnar (43):
      sched: Clean up and standardize #if/#else/#endif markers in sched/autogroup.[ch]
      sched: Clean up and standardize #if/#else/#endif markers in sched/clock.c
      sched: Clean up and standardize #if/#else/#endif markers in sched/core.c
      sched: Clean up and standardize #if/#else/#endif markers in sched/cpufreq_schedutil.c
      sched: Clean up and standardize #if/#else/#endif markers in sched/cpupri.h
      sched: Clean up and standardize #if/#else/#endif markers in sched/cputime.c
      sched: Clean up and standardize #if/#else/#endif markers in sched/deadline.c
      sched: Clean up and standardize #if/#else/#endif markers in sched/debug.c
      sched: Clean up and standardize #if/#else/#endif markers in sched/fair.c
      sched: Clean up and standardize #if/#else/#endif markers in sched/idle.c
      sched: Clean up and standardize #if/#else/#endif markers in sched/loadavg.c
      sched: Clean up and standardize #if/#else/#endif markers in sched/pelt.[ch]
      sched: Clean up and standardize #if/#else/#endif markers in sched/psi.c
      sched: Clean up and standardize #if/#else/#endif markers in sched/rt.c
      sched: Clean up and standardize #if/#else/#endif markers in sched/sched.h
      sched: Clean up and standardize #if/#else/#endif markers in sched/stats.[ch]
      sched: Clean up and standardize #if/#else/#endif markers in sched/syscalls.c
      sched: Clean up and standardize #if/#else/#endif markers in sched/topology.c
      sched/smp: Always define sched_domains_mutex_lock()/unlock(), def_root_domain and sched_domains_mutex
      sched/smp: Make SMP unconditional
      sched/smp: Always define is_percpu_thread() and scheduler_ipi()
      sched/smp: Always define rq->hrtick_csd
      sched/smp: Use the SMP version of try_to_wake_up()
      sched/smp: Use the SMP version of __task_needs_rq_lock()
      sched/smp: Use the SMP version of wake_up_new_task()
      sched/smp: Use the SMP version of sched_exec()
      sched/smp: Use the SMP version of idle_thread_set_boot_cpu()
      sched/smp: Use the SMP version of the RT scheduling class
      sched/smp: Use the SMP version of the deadline scheduling class
      sched/smp: Use the SMP version of scheduler debugging data
      sched/smp: Use the SMP version of schedstats
      sched/smp: Use the SMP version of the scheduler syscalls
      sched/smp: Use the SMP version of sched_update_asym_prefer_cpu()
      sched/smp: Use the SMP version of the idle scheduling class
      sched/smp: Use the SMP version of the stop-CPU scheduling class
      sched/smp: Use the SMP version of cpu_of()
      sched/smp: Use the SMP version of is_migration_disabled()
      sched/smp: Use the SMP version of rq_pin_lock()
      sched/smp: Use the SMP version of task_on_cpu()
      sched/smp: Use the SMP version of WF_ and SD_ flag sanity checks
      sched/smp: Use the SMP version of ENQUEUE_MIGRATED
      sched/smp: Use the SMP version of add_nr_running()
      sched/smp: Use the SMP version of double_rq_clock_clear_update()

John Stultz (4):
      sched: Add CONFIG_SCHED_PROXY_EXEC & boot argument to enable/disable
      sched: Move update_curr_task logic into update_curr_se
      sched: Fix runtime accounting w/ split exec & sched contexts
      sched: Add an initial sketch of the find_proxy_task() function

Juri Lelli (5):
      sched/deadline: Initialize dl_servers after SMP
      sched/deadline: Reset extra_bw to max_bw when clearing root domains
      sched/deadline: Fix accounting after global limits change
      tools/sched: Add root_domains_dump.py which dumps root domains info
      tools/sched: Add dl_bw_dump.py for printing bandwidth accounting info

K Prateek Nayak (1):
      sched/topology: Remove sched_domain_topology_level::flags

Kunwu Chan (2):
      rust: sync: Mark CondVar::notify_*() inline
      rust: sync: Mark PollCondVar::drop() inline

Li Chen (4):
      smpboot: introduce SDTL_INIT() helper to tidy sched topology setup
      x86/smpboot: remove redundant CONFIG_SCHED_SMT
      x86/smpboot: moves x86_topology to static initialize and truncate
      x86/smpboot: avoid SMT domain attach/destroy if SMT is not enabled

Luis Claudio R. Goncalves (1):
      sched: Do not call __put_task_struct() on rt if pi_blocked_on is set

Panagiotis Foliadis (1):
      rust: task: Mark Task methods inline

Peter Zijlstra (5):
      sched: Make clangd usable
      sched/psi: Optimize psi_group_change() cpu_clock() usage
      sched/deadline: Less agressive dl_server handling
      locking/mutex: Rework task_struct::blocked_on
      sched: Start blocked_on chain processing in find_proxy_task()

Sebastian Andrzej Siewior (1):
      lib/smp_processor_id: Make migration check unconditional of SMP

Tejun Heo (4):
      sched/fair: Move max_cfs_quota_period decl and default_cfs_period() def from fair.c to sched.h
      sched/core: Relocate tg_get_cfs_*() and cpu_cfs_*_read_*()
      sched/core: Reorganize cgroup bandwidth control interface file reads
      sched/core: Reorganize cgroup bandwidth control interface file writes

Valentin Schneider (2):
      locking/mutex: Add p->blocked_on wrappers for correctness checks
      sched: Fix proxy/current (push,pull)ability

Vincent Guittot (6):
      sched/fair: Use protect_slice() instead of direct comparison
      sched/fair: Fix NO_RUN_TO_PARITY case
      sched/fair: Remove spurious shorter slice preemption
      sched/fair: Limit run to parity to the min slice of enqueued entities
      sched/fair: Fix entity's lag with run to parity
      sched/fair: Always trigger resched at the end of a protected period

wang wei (1):
      sched/eevdf: Correct the comment in place_entity


 Documentation/admin-guide/kernel-parameters.txt |   5 +
 MAINTAINERS                                     |   1 +
 arch/powerpc/kernel/smp.c                       |  25 +-
 arch/s390/kernel/topology.c                     |  10 +-
 arch/x86/kernel/smpboot.c                       |  51 +-
 include/linux/cpu.h                             |   5 -
 include/linux/preempt.h                         |   9 -
 include/linux/psi_types.h                       |   6 +-
 include/linux/sched.h                           | 148 ++--
 include/linux/sched/deadline.h                  |   4 -
 include/linux/sched/idle.h                      |   4 -
 include/linux/sched/nohz.h                      |   4 +-
 include/linux/sched/sd_flags.h                  |   8 -
 include/linux/sched/task.h                      |  31 +-
 include/linux/sched/topology.h                  |  39 +-
 init/Kconfig                                    |  15 +
 kernel/fork.c                                   |   3 +-
 kernel/locking/mutex-debug.c                    |   9 +-
 kernel/locking/mutex.c                          |  18 +
 kernel/locking/mutex.h                          |   3 +-
 kernel/locking/ww_mutex.h                       |  16 +-
 kernel/sched/autogroup.c                        |   9 +-
 kernel/sched/autogroup.h                        |   6 +-
 kernel/sched/build_policy.c                     |   6 +-
 kernel/sched/build_utility.c                    |   9 +-
 kernel/sched/clock.c                            |   7 +-
 kernel/sched/completion.c                       |   5 +
 kernel/sched/core.c                             | 869 ++++++++++++++----------
 kernel/sched/core_sched.c                       |   2 +
 kernel/sched/cpuacct.c                          |   2 +
 kernel/sched/cpudeadline.c                      |   1 +
 kernel/sched/cpudeadline.h                      |   4 +-
 kernel/sched/cpufreq.c                          |   1 +
 kernel/sched/cpufreq_schedutil.c                |   6 +-
 kernel/sched/cpupri.c                           |   1 +
 kernel/sched/cpupri.h                           |   5 +-
 kernel/sched/cputime.c                          |  17 +-
 kernel/sched/deadline.c                         | 208 +++---
 kernel/sched/debug.c                            |  47 +-
 kernel/sched/fair.c                             | 408 ++++-------
 kernel/sched/idle.c                             |  15 +-
 kernel/sched/isolation.c                        |   2 +
 kernel/sched/loadavg.c                          |   6 +-
 kernel/sched/membarrier.c                       |   2 +
 kernel/sched/pelt.c                             |   5 +-
 kernel/sched/pelt.h                             |  67 +-
 kernel/sched/psi.c                              | 129 ++--
 kernel/sched/rt.c                               | 112 +--
 kernel/sched/sched-pelt.h                       |   1 +
 kernel/sched/sched.h                            | 243 ++-----
 kernel/sched/smp.h                              |   7 +
 kernel/sched/stats.c                            |   5 +-
 kernel/sched/stats.h                            |  10 +-
 kernel/sched/stop_task.c                        |   5 +-
 kernel/sched/swait.c                            |   1 +
 kernel/sched/syscalls.c                         |  15 +-
 kernel/sched/topology.c                         |  57 +-
 kernel/sched/wait.c                             |   1 +
 kernel/sched/wait_bit.c                         |   3 +
 kernel/smpboot.c                                |   4 -
 lib/smp_processor_id.c                          |   2 -
 rust/helpers/task.c                             |   6 +
 rust/kernel/lib.rs                              |  48 ++
 rust/kernel/sync/condvar.rs                     |   3 +
 rust/kernel/sync/poll.rs                        |   1 +
 rust/kernel/task.rs                             |  33 +
 tools/sched/dl_bw_dump.py                       |  57 ++
 tools/sched/root_domains_dump.py                |  68 ++
 68 files changed, 1472 insertions(+), 1463 deletions(-)
 create mode 100644 tools/sched/dl_bw_dump.py
 create mode 100644 tools/sched/root_domains_dump.py

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ