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>] [day] [month] [year] [list]
Message-ID: <aYmQyDHFx3lisCgm@gmail.com>
Date: Mon, 9 Feb 2026 08:46:16 +0100
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>,
	Andrea Righi <arighi@...dia.com>,
	Joel Fernandes <joelagnelf@...dia.com>
Subject: [GIT PULL] Scheduler changes for v7.0

Linus,

Please pull the latest sched/core Git tree from:

   git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git sched-core-2026-02-09

for you to fetch changes up to e34881c84c255bc300f24d9fe685324be20da3d1:

Scheduler changes for v7.0:

Scheduler Kconfig space updates:

 - Further consolidate configurable preemption modes: reduce
   the number of architectures that are allowed to offer
   PREEMPT_NONE and PREEMPT_VOLUNTARY, reducing the number
   of preemption models from four to just two: 'full' and 'lazy'
   on up-to-date architectures (arm64, loongarch, powerpc,
   riscv, s390, x86).

   None and voluntary are only available as legacy features
   on platforms that don't implement lazy preemption yet,
   or which don't even support preemption.

   The goal is to eventually remove cond_resched() and
   voluntary preemption altogether.

   (Peter Zijlstra)

RSEQ based 'scheduler time slice extension' support:

This allows a thread to request a time slice extension when it
enters a critical section to avoid contention on a resource when
the thread is scheduled out inside of the critical section.

 - Add fields and constants for time slice extension
 - Provide static branch for time slice extensions
 - Add statistics for time slice extensions
 - Add prctl() to enable time slice extensions
 - Implement sys_rseq_slice_yield()
 - Implement syscall entry work for time slice extensions
 - Implement time slice extension enforcement timer
 - Reset slice extension when scheduled
 - Implement rseq_grant_slice_extension()
 - entry: Hook up rseq time slice extension
 - selftests: Implement time slice extension test

   (Thomas Gleixner)

 - Allow registering RSEQ with slice extension
 - Move slice_ext_nsec to debugfs
 - Lower default slice extension
 - selftests/rseq: Add rseq slice histogram script

   (Peter Zijlstra)

Scheduler performance/scalability improvements:

 - Update rq->avg_idle when a task is moved to an idle CPU,
   which improves the scalability of various workloads.
   (Shubhang Kaushik)

 - Reorder fields in 'struct rq' for better caching
   (Blake Jones)

 - Fair scheduler SMP NOHZ balancing code speedups:

   - Move checking for nohz cpus after time check
   - Change likelyhood of nohz.nr_cpus
   - Remove nohz.nr_cpus and use weight of cpumask instead

     (Shrikanth Hegde)

 - Avoid false sharing for sched_clock_irqtime (Wangyang Guo)

 - Drop useless cpumask_empty() in find_energy_efficient_cpu()
 - Simplify task_numa_find_cpu()
 - Use cpumask_weight_and() in sched_balance_find_dst_group()

   (Yury Norov)

DL scheduler updates:

 - Add a deadline server for sched_ext tasks (by Andrea Righi and
   Joel Fernandes, with fixes by Peter Zijlstra)

RT scheduler updates:

 - Skip currently executing CPU in rto_next_cpu() (Chen Jinghuang)

Entry code updates and performance improvements, which is part of the
scheduler tree in this cycle due to interdependencies with the RSEQ
based time slice extension work:

  - Remove unused syscall argument from syscall_trace_enter()
  - Rework syscall_exit_to_user_mode_work() for architecture reuse
  - Add arch_ptrace_report_syscall_entry/exit()
  - Inline syscall_exit_work() and syscall_trace_enter()

    (Jinjie Ruan)

Scheduler core updates:

 - Rework sched_class::wakeup_preempt() and rq_modified_*()
 - Avoid rq->lock bouncing in sched_balance_newidle()
 - Rename rcu_dereference_check_sched_domain() =>
          rcu_dereference_sched_domain()
 - <linux/compiler_types.h>: Add the __signed_scalar_typeof() helper

   (Peter Zijlstra)

Fair scheduler updates/refactoring:

 - Fold the sched_avg update
 - Change rcu_dereference_check_sched_domain() to rcu-sched
 - Switch to rcu_dereference_all()
 - Remove superfluous rcu_read_lock()
 - Limit hrtick work

   (Peter Zijlstra)

 - Join two #ifdef CONFIG_FAIR_GROUP_SCHED blocks
 - Clean up comments in 'struct cfs_rq'
 - Separate se->vlag from se->vprot
 - Rename cfs_rq::avg_load to cfs_rq::sum_weight
 - Rename cfs_rq::avg_vruntime to ::sum_w_vruntime & helper functions
 - Introduce and use the vruntime_cmp() and vruntime_op() wrappers
   for wrapped-signed aritmetics
 - Sort out 'blocked_load*' namespace noise

   (Ingo Molnar)

Scheduler debugging code updates:

 - Export hidden tracepoints to modules (Gabriele Monaco)

 - Convert copy_from_user() + kstrtouint() to kstrtouint_from_user()
   (Fushuai Wang)

 - Add assertions to QUEUE_CLASS (Peter Zijlstra)

 - hrtimer: Fix tracing oddity (Thomas Gleixner)

Misc fixes and cleanups:

 - Re-evaluate scheduling when migrating queued tasks out of
   throttled cgroups (Zicheng Qu)

 - Remove task_struct->faults_disabled_mapping (Christoph Hellwig)

 - Fix math notation errors in avg_vruntime comment (Zhan Xusheng)

 - sched/cpufreq: Use %pe format for PTR_ERR() printing (zenghongling)

 Thanks,

	Ingo

------------------>
Andrea Righi (2):
      sched_ext: Add a DL server for sched_ext tasks
      selftests/sched_ext: Add test for sched_ext dl_server

Blake Jones (1):
      sched: Reorder some fields in struct rq

Chen Jinghuang (1):
      sched/rt: Skip currently executing CPU in rto_next_cpu()

Christoph Hellwig (1):
      sched: remove task_struct->faults_disabled_mapping

Fushuai Wang (1):
      sched/debug: Convert copy_from_user() + kstrtouint() to kstrtouint_from_user()

Gabriele Monaco (2):
      sched: Export hidden tracepoints to modules
      sched: Fix build for modules using set_tsk_need_resched()

Ingo Molnar (7):
      sched/fair: Join two #ifdef CONFIG_FAIR_GROUP_SCHED blocks
      sched/fair: Clean up comments in 'struct cfs_rq'
      sched/fair: Separate se->vlag from se->vprot
      sched/fair: Rename cfs_rq::avg_load to cfs_rq::sum_weight
      sched/fair: Rename cfs_rq::avg_vruntime to ::sum_w_vruntime, and helper functions
      sched/fair: Introduce and use the vruntime_cmp() and vruntime_op() wrappers for wrapped-signed aritmetics
      sched/fair: Sort out 'blocked_load*' namespace noise

Jinjie Ruan (4):
      entry: Remove unused syscall argument from syscall_trace_enter()
      entry: Rework syscall_exit_to_user_mode_work() for architecture reuse
      entry: Add arch_ptrace_report_syscall_entry/exit()
      entry: Inline syscall_exit_work() and syscall_trace_enter()

Joel Fernandes (5):
      sched/deadline: Clear the defer params
      sched/debug: Fix updating of ppos on server write ops
      sched/debug: Stop and start server based on if it was active
      sched/debug: Add support to change sched_ext server params
      selftests/sched_ext: Add test for DL server total_bw consistency

Peter Zijlstra (17):
      <linux/compiler_types.h>: Add the __signed_scalar_typeof() helper
      sched/fair: Fold the sched_avg update
      sched/fair: Avoid rq->lock bouncing in sched_balance_newidle()
      sched/headers: Rename rcu_dereference_check_sched_domain() => rcu_dereference_sched_domain()
      sched/fair: Switch to rcu_dereference_all()
      sched/fair: Remove superfluous rcu_read_lock()
      sched/fair: Limit hrtick work
      sched/core: Add assertions to QUEUE_CLASS
      sched/core: Rework sched_class::wakeup_preempt() and rq_modified_*()
      sched: Fix faulty assertion in sched_change_end()
      sched/fair: Fix sched_avg fold
      sched: Further restrict the preemption modes
      rseq: Allow registering RSEQ with slice extension
      rseq: Move slice_ext_nsec to debugfs
      rseq: Lower default slice extension
      selftests/rseq: Add rseq slice histogram script
      sched/debug: Fix dl_server (re)start conditions

Shrikanth Hegde (3):
      sched/fair: Move checking for nohz cpus after time check
      sched/fair: Change likelyhood of nohz.nr_cpus
      sched/fair: Remove nohz.nr_cpus and use weight of cpumask instead

Shubhang Kaushik (1):
      sched: Update rq->avg_idle when a task is moved to an idle CPU

Thomas Gleixner (12):
      rseq: Add fields and constants for time slice extension
      rseq: Provide static branch for time slice extensions
      rseq: Add statistics for time slice extensions
      rseq: Add prctl() to enable time slice extensions
      rseq: Implement sys_rseq_slice_yield()
      rseq: Implement syscall entry work for time slice extensions
      rseq: Implement time slice extension enforcement timer
      rseq: Reset slice extension when scheduled
      rseq: Implement rseq_grant_slice_extension()
      entry: Hook up rseq time slice extension
      selftests/rseq: Implement time slice extension test
      hrtimer: Fix trace oddity

Wangyang Guo (1):
      sched/clock: Avoid false sharing for sched_clock_irqtime

Yury Norov (NVIDIA) (3):
      sched/fair: Drop useless cpumask_empty() in find_energy_efficient_cpu()
      sched/fair: Simplify task_numa_find_cpu()
      sched/fair: Use cpumask_weight_and() in sched_balance_find_dst_group()

Zhan Xusheng (1):
      sched/fair: Fix math notation errors in avg_vruntime comment

Zicheng Qu (1):
      sched: Re-evaluate scheduling when migrating queued tasks out of throttled cgroups

zenghongling (1):
      sched/cpufreq: Use %pe format for PTR_ERR() printing


 Documentation/admin-guide/kernel-parameters.txt  |   5 +
 Documentation/userspace-api/index.rst            |   1 +
 Documentation/userspace-api/rseq.rst             | 140 ++++++++
 arch/alpha/kernel/syscalls/syscall.tbl           |   1 +
 arch/arm/tools/syscall.tbl                       |   1 +
 arch/arm64/tools/syscall_32.tbl                  |   1 +
 arch/m68k/kernel/syscalls/syscall.tbl            |   1 +
 arch/microblaze/kernel/syscalls/syscall.tbl      |   1 +
 arch/mips/kernel/syscalls/syscall_n32.tbl        |   1 +
 arch/mips/kernel/syscalls/syscall_n64.tbl        |   1 +
 arch/mips/kernel/syscalls/syscall_o32.tbl        |   1 +
 arch/parisc/kernel/syscalls/syscall.tbl          |   1 +
 arch/powerpc/kernel/syscalls/syscall.tbl         |   1 +
 arch/s390/kernel/syscalls/syscall.tbl            |   1 +
 arch/sh/kernel/syscalls/syscall.tbl              |   1 +
 arch/sparc/kernel/syscalls/syscall.tbl           |   1 +
 arch/x86/entry/syscalls/syscall_32.tbl           |   1 +
 arch/x86/entry/syscalls/syscall_64.tbl           |   1 +
 arch/x86/kernel/tsc.c                            |   2 -
 arch/xtensa/kernel/syscalls/syscall.tbl          |   1 +
 include/linux/compiler_types.h                   |  19 ++
 include/linux/entry-common.h                     | 167 ++++++++-
 include/linux/rseq.h                             |  11 +
 include/linux/rseq_entry.h                       | 192 ++++++++++-
 include/linux/rseq_types.h                       |  32 +-
 include/linux/sched.h                            |  14 +-
 include/linux/syscalls.h                         |   1 +
 include/linux/thread_info.h                      |  16 +-
 include/uapi/asm-generic/unistd.h                |   5 +-
 include/uapi/linux/prctl.h                       |  10 +
 include/uapi/linux/rseq.h                        |  41 ++-
 init/Kconfig                                     |  12 +
 init/init_task.c                                 |   1 -
 kernel/Kconfig.preempt                           |   3 +
 kernel/entry/common.c                            |  27 +-
 kernel/entry/common.h                            |   7 -
 kernel/entry/syscall-common.c                    |  97 +-----
 kernel/entry/syscall_user_dispatch.c             |   4 +-
 kernel/rseq.c                                    | 365 +++++++++++++++++++-
 kernel/sched/clock.c                             |   3 +
 kernel/sched/core.c                              |  86 +++--
 kernel/sched/cpufreq_schedutil.c                 |   2 +-
 kernel/sched/cputime.c                           |   9 +-
 kernel/sched/deadline.c                          | 105 ++++--
 kernel/sched/debug.c                             | 187 ++++++++---
 kernel/sched/ext.c                               |  42 ++-
 kernel/sched/fair.c                              | 411 ++++++++++++-----------
 kernel/sched/idle.c                              |   7 +-
 kernel/sched/rt.c                                |  14 +-
 kernel/sched/sched.h                             | 142 ++++----
 kernel/sched/stop_task.c                         |   3 -
 kernel/sched/topology.c                          |   5 +
 kernel/sys.c                                     |   6 +
 kernel/sys_ni.c                                  |   1 +
 kernel/time/hrtimer.c                            |   2 +-
 scripts/syscall.tbl                              |   1 +
 tools/testing/selftests/rseq/.gitignore          |   1 +
 tools/testing/selftests/rseq/Makefile            |   5 +-
 tools/testing/selftests/rseq/rseq-abi.h          |  27 ++
 tools/testing/selftests/rseq/rseq-slice-hist.py  | 132 ++++++++
 tools/testing/selftests/rseq/slice_test.c        | 219 ++++++++++++
 tools/testing/selftests/sched_ext/Makefile       |   2 +
 tools/testing/selftests/sched_ext/rt_stall.bpf.c |  23 ++
 tools/testing/selftests/sched_ext/rt_stall.c     | 240 +++++++++++++
 tools/testing/selftests/sched_ext/total_bw.c     | 281 ++++++++++++++++
 65 files changed, 2598 insertions(+), 546 deletions(-)
 create mode 100644 Documentation/userspace-api/rseq.rst
 delete mode 100644 kernel/entry/common.h
 create mode 100644 tools/testing/selftests/rseq/rseq-slice-hist.py
 create mode 100644 tools/testing/selftests/rseq/slice_test.c
 create mode 100644 tools/testing/selftests/sched_ext/rt_stall.bpf.c
 create mode 100644 tools/testing/selftests/sched_ext/rt_stall.c
 create mode 100644 tools/testing/selftests/sched_ext/total_bw.c

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ