• Linus Torvalds's avatar
    Merge tag 'sched-core-2024-09-19' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 2004cef1
    Linus Torvalds authored
    Pull scheduler updates from Ingo Molnar:
    
     - Implement the SCHED_DEADLINE server infrastructure - Daniel Bristot
       de Oliveira's last major contribution to the kernel:
    
         "SCHED_DEADLINE servers can help fixing starvation issues of low
          priority tasks (e.g., SCHED_OTHER) when higher priority tasks
          monopolize CPU cycles. Today we have RT Throttling; DEADLINE
          servers should be able to replace and improve that."
    
       (Daniel Bristot de Oliveira, Peter Zijlstra, Joel Fernandes, Youssef
       Esmat, Huang Shijie)
    
     - Preparatory changes for sched_ext integration:
         - Use set_next_task(.first) where required
         - Fix up set_next_task() implementations
         - Clean up DL server vs. core sched
         - Split up put_prev_task_balance()
         - Rework pick_next_task()
         - Combine the last put_prev_task() and the first set_next_task()
         - Rework dl_server
         - Add put_prev_task(.next)
    
       (Peter Zijlstra, with a fix by Tejun Heo)
    
     - Complete the EEVDF transition and refine EEVDF scheduling:
         - Implement delayed dequeue
         - Allow shorter slices to wakeup-preempt
         - Use sched_attr::sched_runtime to set request/slice suggestion
         - Document the new feature flags
         - Remove unused and duplicate-functionality fields
         - Simplify & unify pick_next_task_fair()
         - Misc debuggability enhancements
    
       (Peter Zijlstra, with fixes/cleanups by Dietmar Eggemann, Valentin
       Schneider and Chuyi Zhou)
    
     - Initialize the vruntime of a new task when it is first enqueued,
       resulting in significant decrease in latency of newly woken tasks
       (Zhang Qiao)
    
     - Introduce SM_IDLE and an idle re-entry fast-path in __schedule()
       (K Prateek Nayak, Peter Zijlstra)
    
     - Clean up and clarify the usage of Clean up usage of rt_task()
       (Qais Yousef)
    
     - Preempt SCHED_IDLE entities in strict cgroup hierarchies
       (Tianchen Ding)
    
     - Clarify the documentation of time units for deadline scheduler
       parameters (Christian Loehle)
    
     - Remove the HZ_BW chicken-bit feature flag introduced a year ago,
       the original change seems to be working fine (Phil Auld)
    
     - Misc fixes and cleanups (Chen Yu, Dan Carpenter, Huang Shijie,
       Peilin He, Qais Yousefm and Vincent Guittot)
    
    * tag 'sched-core-2024-09-19' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (64 commits)
      sched/cpufreq: Use NSEC_PER_MSEC for deadline task
      cpufreq/cppc: Use NSEC_PER_MSEC for deadline task
      sched/deadline: Clarify nanoseconds in uapi
      sched/deadline: Convert schedtool example to chrt
      sched/debug: Fix the runnable tasks output
      sched: Fix sched_delayed vs sched_core
      kernel/sched: Fix util_est accounting for DELAY_DEQUEUE
      kthread: Fix task state in kthread worker if being frozen
      sched/pelt: Use rq_clock_task() for hw_pressure
      sched/fair: Move effective_cpu_util() and effective_cpu_util() in fair.c
      sched/core: Introduce SM_IDLE and an idle re-entry fast-path in __schedule()
      sched: Add put_prev_task(.next)
      sched: Rework dl_server
      sched: Combine the last put_prev_task() and the first set_next_task()
      sched: Rework pick_next_task()
      sched: Split up put_prev_task_balance()
      sched: Clean up DL server vs core sched
      sched: Fixup set_next_task() implementations
      sched: Use set_next_task(.first) where required
      sched/fair: Properly deactivate sched_delayed task upon class change
      ...
    2004cef1
core.c 267 KB