The Linux kernel’s innovative 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 the Git merge.
