scheduler 标签归档

共 6 篇文章 · 返回首页

EEVDF 调度器:Linux 6.6 为什么换掉了 CFS

Linux 6.6 用 EEVDF 取代了 CFS 的 SCHED_NORMAL 选取逻辑。从 1995 年原始论文的 lag、eligibility、virtual deadline,到 commit 147f3ef 只重写 placement/pick/preempt,再到本机内核 6.6 上读 sched/debug 把每个任务的 vruntime、eligible 标志、deadline 一一对上 vd=ve+r/w,外加 nice 带宽与 base_slice 抢占两组实测,讲清换的是哪一块、延迟敏感任务凭什么先跑。

【eBPF 内核实现深度拆解】sched_ext 深度:用 BPF 写内核调度器

从 struct sched_ext_ops 的 10+ 回调语义出发,拆解 select_cpu/enqueue/dispatch/tick 等核心回调、scx_bpf_dispatch/scx_bpf_kick_cpu 等 kfunc 的内核实现、ext 调度类与 CFS/EEVDF 的共存策略(SCX_OPS_SWITCH_PARTIAL),以及 scx_layered 和 scx_rustland 的用户态调度器参考实现。