皇上,还记得我吗?我就是1999年那个Linux伊甸园啊-----24小时滚动更新开源资讯,全年无休!

Linux 6.18 sched_ext 准备支持 Cgroup 子调度器

Linux 6.18 sched_ext 准备支持 Cgroup 子调度器

允许通过 BPF 程序创建内核线程调度器的 sched_ext 调度器框架已为 Linux 6.18 内核更新做好准备。

Linux 6.18 的 sched_ext 正在带来代码清理、新的辅助函数、一些调试增强功能以及其他各种改进。

此外,这次 sched_ext 的更新还突出了为 cgroup 子调度器支持所做的准备。

– 代码组织清理。将内部类型和访问器从 ext_internal.h 中分离出来,以减小 ext.c 的大小并提高可维护性。

– 通过向各种函数和辅助程序添加 @sch 参数、重新组织调度器实例处理、以及移除过时的辅助程序(如 scx_kf_exit() 和 kf_cpu_valid())来为 cgroup 子调度器支持做准备。

– 添加新的 scx_bpf_cpu_curr() 和 scx_bpf_locked_rq() BPF 辅助程序,以提供具有适当 RCU 保护的安全访问模式。由于潜在的竞争条件,scx_bpf_cpu_rq() 已被弃用并发出警告。

– 通过在错误状态转储中添加禁用迁移的计数器、SCX_EFLAG_INITIALIZED 标志、警告标志的字段以及其他改进来增强调试功能,以帮助诊断问题。

– 使用 cgroup_lock/unlock() 进行 cgroup 同步,而不是基于 scx_cgroup_rwsem 的同步。这更简单,并允许启用/禁用路径独立于 CPU 控制器来同步 cgroup 变化。

– 由于 RCU 使用警告,rhashtable_lookup()的替代方案以避免冗余 RCU 锁定被回滚。一旦 rhashtable 更新为使用 rcu_dereference_all(),将重新进行。

– 其他杂项更新和修复,包括绕过处理改进、scx_task_iter_relock()改进、tools/sched_ext 更新以及兼容性辅助函数。

关于这些为 Linux 6.18 合并窗口准备好的 sched_ext 变更的更多细节,请通过这个拉取请求查看。

转自  Linux 6.18 sched_ext Preps For Cgroup Sub-Scheduler Support – Phoronix