
Linux 内核中创新的 sched_ext 代码,使得能够轻松使用 eBPF 程序编写可扩展的任务调度器,已在 Linux 6.19 中合并了一些不错的增强功能。
Linux 6.19 中,可扩展调度器类带来了对行为异常的 (e)BPF 调度器的改进恢复。该拉取请求说明:
“改进从行为异常的 BPF 调度器中恢复的能力。当调度器将许多具有不同亲和力限制的任务放置在共享 DSQ 上时,CPU 在扫描无法运行的任务时可能会使系统过载,导致死锁。现在绕过模式使用每个 CPU 的 DSQ 并结合负载均衡器来避免这种情况,并钩入硬死锁检测器以尝试恢复。添加 scx_cpu0 示例调度器以演示此场景。”
sched_ext 代码还增加了对 DSO 的无锁窥视操作,以减少调度器的锁竞争,准备了对分层调度器的支持,并包含各种修复。
更多关于 Linux 6.19 中这些 sched_ext 改进的细节,请参见 Git 合并。
转自 Sched_EXT With Linux 6.19 Improves Recovering For Misbehaving eBPF Schedulers – Phoronix
Linuxeden开源社区