]> Git Repo - linux.git/commitdiff
Merge tag 'sched-core-2024-11-18' of git://git.kernel.org/pub/scm/linux/kernel/git...
authorLinus Torvalds <[email protected]>
Tue, 19 Nov 2024 22:16:06 +0000 (14:16 -0800)
committerLinus Torvalds <[email protected]>
Tue, 19 Nov 2024 22:16:06 +0000 (14:16 -0800)
Pull scheduler updates from Ingo Molnar:
 "Core facilities:

   - Add the "Lazy preemption" model (CONFIG_PREEMPT_LAZY=y), which
     optimizes fair-class preemption by delaying preemption requests to
     the tick boundary, while working as full preemption for
     RR/FIFO/DEADLINE classes. (Peter Zijlstra)
        - x86: Enable Lazy preemption (Peter Zijlstra)
        - riscv: Enable Lazy preemption (Jisheng Zhang)

   - Initialize idle tasks only once (Thomas Gleixner)

   - sched/ext: Remove sched_fork() hack (Thomas Gleixner)

  Fair scheduler:

   - Optimize the PLACE_LAG when se->vlag is zero (Huang Shijie)

  Idle loop:

   - Optimize the generic idle loop by removing unnecessary memory
     barrier (Zhongqiu Han)

  RSEQ:

   - Improve cache locality of RSEQ concurrency IDs for intermittent
     workloads (Mathieu Desnoyers)

  Waitqueues:

   - Make wake_up_{bit,var} less fragile (Neil Brown)

  PSI:

   - Pass enqueue/dequeue flags to psi callbacks directly (Johannes
     Weiner)

  Preparatory patches for proxy execution:

   - Add move_queued_task_locked helper (Connor O'Brien)

   - Consolidate pick_*_task to task_is_pushable helper (Connor O'Brien)

   - Split out __schedule() deactivate task logic into a helper (John
     Stultz)

   - Split scheduler and execution contexts (Peter Zijlstra)

   - Make mutex::wait_lock irq safe (Juri Lelli)

   - Expose __mutex_owner() (Juri Lelli)

   - Remove wakeups from under mutex::wait_lock (Peter Zijlstra)

  Misc fixes and cleanups:

   - Remove unused __HAVE_THREAD_FUNCTIONS hook support (David
     Disseldorp)

   - Update the comment for TIF_NEED_RESCHED_LAZY (Sebastian Andrzej
     Siewior)

   - Remove unused bit_wait_io_timeout (Dr. David Alan Gilbert)

   - remove the DOUBLE_TICK feature (Huang Shijie)

   - fix the comment for PREEMPT_SHORT (Huang Shijie)

   - Fix unnused variable warning (Christian Loehle)

   - No PREEMPT_RT=y for all{yes,mod}config"

* tag 'sched-core-2024-11-18' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (33 commits)
  sched, x86: Update the comment for TIF_NEED_RESCHED_LAZY.
  sched: No PREEMPT_RT=y for all{yes,mod}config
  riscv: add PREEMPT_LAZY support
  sched, x86: Enable Lazy preemption
  sched: Enable PREEMPT_DYNAMIC for PREEMPT_RT
  sched: Add Lazy preemption model
  sched: Add TIF_NEED_RESCHED_LAZY infrastructure
  sched/ext: Remove sched_fork() hack
  sched: Initialize idle tasks only once
  sched: psi: pass enqueue/dequeue flags to psi callbacks directly
  sched/uclamp: Fix unnused variable warning
  sched: Split scheduler and execution contexts
  sched: Split out __schedule() deactivate task logic into a helper
  sched: Consolidate pick_*_task to task_is_pushable helper
  sched: Add move_queued_task_locked helper
  locking/mutex: Expose __mutex_owner()
  locking/mutex: Make mutex::wait_lock irq safe
  locking/mutex: Remove wakeups from under mutex::wait_lock
  sched: Improve cache locality of RSEQ concurrency IDs for intermittent workloads
  sched: idle: Optimize the generic idle loop by removing needless memory barrier
  ...

12 files changed:
1  2 
arch/riscv/Kconfig
arch/x86/Kconfig
include/linux/sched/task_stack.h
kernel/fork.c
kernel/locking/rtmutex.c
kernel/locking/rtmutex_api.c
kernel/locking/spinlock_rt.c
kernel/sched/core.c
kernel/sched/ext.c
kernel/sched/fair.c
kernel/sched/sched.h
kernel/sched/syscalls.c

Simple merge
Simple merge
Simple merge
diff --cc kernel/fork.c
Simple merge
index d3b72c2f983f70f15f8fcae9300154589b53b273,c7de80ee1f9d8077a080787f12757fa01722f8ee..ac1365afcc4a51f7658c528dba43781848c7883b
@@@ -1804,9 -1816,10 +1817,11 @@@ static __always_inline int __rt_mutex_l
  /**
   * rtlock_slowlock_locked - Slow path lock acquisition for RT locks
   * @lock:     The underlying RT mutex
+  * @wake_q:   The wake_q to wake tasks after we release the wait_lock
   */
- static void __sched rtlock_slowlock_locked(struct rt_mutex_base *lock)
+ static void __sched rtlock_slowlock_locked(struct rt_mutex_base *lock,
+                                          struct wake_q_head *wake_q)
 +      __releases(&lock->wait_lock) __acquires(&lock->wait_lock)
  {
        struct rt_mutex_waiter waiter;
        struct task_struct *owner;
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
This page took 0.170156 seconds and 4 git commands to generate.