Sched_EXT With Linux 6.19 Improves Recovering For Misbehaving eBPF Schedulers
([Linux Kernel] 30 Minutes Ago
sched_ext)
- Reference: 0001596705
- News link: https://www.phoronix.com/news/Linux-6.19-sched-ext
- Source link:
The Linux kernel's innovative [1]sched_ext code for being able to easily write extensible task schedulers using eBPF programs has some nice enhancements merged for Linux 6.19.
With Linux 6.19 the extensible scheduler class brings improved recovery for misbehaving (e)BPF schedulers. The pull request explains:
"Improve recovery from misbehaving BPF schedulers. When a scheduler puts many tasks with varying affinity restrictions on a shared DSQ, CPUs scanning through tasks they cannot run can overwhelm the system, causing lockups. Bypass mode now uses per-CPU DSQs with a load balancer to avoid this, and hooks into the hardlockup detector to attempt recovery. Add scx_cpu0 example scheduler to demonstrate this scenario."
The sched_ext code also adds lockless peek operation for DSOs to reduce locking contention for schedulers, preparations for hierarchical scheduler support, and a variety of fixes.
More details on these sched_ext improvements in Linux 6.19 via [2]the Git merge .
[1] https://www.phoronix.com/search/sched_ext
[2] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=02baaa67d9afc2e56c6e1ac6a1fb1f1dd2be366f
With Linux 6.19 the extensible scheduler class brings improved recovery for misbehaving (e)BPF schedulers. The pull request explains:
"Improve recovery from misbehaving BPF schedulers. When a scheduler puts many tasks with varying affinity restrictions on a shared DSQ, CPUs scanning through tasks they cannot run can overwhelm the system, causing lockups. Bypass mode now uses per-CPU DSQs with a load balancer to avoid this, and hooks into the hardlockup detector to attempt recovery. Add scx_cpu0 example scheduler to demonstrate this scenario."
The sched_ext code also adds lockless peek operation for DSOs to reduce locking contention for schedulers, preparations for hierarchical scheduler support, and a variety of fixes.
More details on these sched_ext improvements in Linux 6.19 via [2]the Git merge .
[1] https://www.phoronix.com/search/sched_ext
[2] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=02baaa67d9afc2e56c6e1ac6a1fb1f1dd2be366f