Track vulnerabilities like this one. Sign up free to get alerted when software you use is affected.

Linux Kernel: Potential Deadlock in Scheduling System

published 6 months ago
Summary

A bug in the Linux kernel scheduling system could cause a group of computers to freeze indefinitely. This issue has been fixed to prevent such a situation. Affected systems should be updated to the latest version of the Linux kernel to ensure stability and prevent potential crashes.

What to do
  • Update linux kernel to version 6.19.12.
Affected software
Ecosystem VendorProductAffected versions
Linux linux kernel >= 6.12.0, < 6.19.12
Fix: upgrade to 6.19.12
Original advisory text
sched_ext: Fix SCX_KICK_WAIT deadlock by deferring wait to balance callback
In the Linux kernel, the following vulnerability has been resolved:

sched_ext: Fix SCX_KICK_WAIT deadlock by deferring wait to balance callback

SCX_KICK_WAIT busy-waits in kick_cpus_irq_workfn() using
smp_cond_load_acquire() until the target CPU's kick_sync advances. Because
the irq_work runs in hardirq context, the waiting CPU cannot reschedule and
its own kick_sync never advances. If multiple CPUs form a wait cycle, all
CPUs deadlock.

Replace the busy-wait in kick_cpus_irq_workfn() with resched_curr() to
force the CPU through do_pick_task_scx(), which queues a balance callback
to perform the wait. The balance callback drops the rq lock and enables
IRQs following the sched_core_balance() pattern, so the CPU can process
IPIs while waiting. The local CPU's kick_sync is advanced on entry to
do_pick_task_scx() and continuously during the wait, ensuring any CPU that
starts waiting for us sees the advancement and cannot form cyclic
dependencies.
Timeline
Published8 May 2026
Updated16 Jul 2026
First seen16 Jul 2026
Track software like this
Free during beta