Linux 最新资讯 20260624——"恶心人!" sched_ext 源码因 Torvalds 抱怨重构
"恶心人!" sched_ext 源码因 Linus Torvalds 抱怨重构 上周,sched_ext 的主要变更已合入 Linux 7.2,其中包括对子调度器支持的持续改进。虽然 Linus Torvalds 并未反对这个依赖用户空间 BPF 程序的可扩展调度器框架所推进的任何功能,但他对新 C 源文件的布局感到不满,并评论道:“请不要做这种令人作呕的事……自 1965 年起,内核源代码的文件结构就已很明确了。” Linus Torvalds 不喜欢上周的 sched_ext 拉取请求中,多个以 ext_ 为前缀的新 C 代码和头文件被直接放在 Kernel//sched 目录下,而不是像 Kernel/sched/ext/ 那样创建一个新的子目录,从而避免给大量文件添加前缀。 Torvalds 合入了这些代码,但评论道: “> create mode 100644 Kernel/sched/ext_arena.c > create mode 100644 Kernel/sched/ext_arena.h > create mode 100644 Kernel/sched/ext_cid.c > create mode 100644 Kernel/sched/ext_cid.h > create mode 100644 Kernel/sched/ext_types.h 请不要做这种令人作呕的事。 我们使用子目录是有理由的:为了将文件分组并分隔开。 用名称前缀代替目录的做法令人作呕且错误。如果你有这么多零散的 sched-ext 文件,那它就该被清理干净,而不是这样一团乱麻。 我合入了这些代码,但这是强忍着怒火进行的。自 1965 年起,内核源代码的文件结构就已很明确了。”
作为回应,今天早些时候维护者提交了一个新的拉取请求,用于重新组织 sched_ext 的源码树,改用 Kernel/sched/ext/ 目录,而不是在公共调度器目录中散布一堆 ext_* 文件。 Linus Torvalds 已经合入了重构 sched_ext 文件结构的代码。 COSMIC Epoch 1.1 发布:带来 COSMIC-Monitor 与合成器改进 System76 发布了 COSMIC Epoch 1.1,这是该桌面环境的最新功能版,也是自去年 12 月 COSMIC 1.0 发布以来首次提升次版本号。 这个基于 Rust 的开源桌面环境背后的开发者们计划今后定期递增次版本号,以便在必要时推出中期补丁版本。COSMIC Epoch 1.1 新增了 COSMIC-Monitor,作为 GNOME 系统监视器的替代品。鉴于 COSMIC-Monitor 已能满足系统监控需求,它将很快取代 Pop!_OS 仓库中原有的组件。 作为 COSMIC 桌面的 Wayland 合成器组件,COSMIC-Comp 现在支持平铺异常、固定工作区的命名、将 logind 从 systemd 分离,以及多项其他修复。 COSMIC 的背景处理现在会递归扫描自定义壁纸目录。同时,COSMIC 文件管理器现已支持 Page-Up 和 Page-Down 键。COSMIC-Term 终端也将不再每次渲染菜单栏时都从磁盘重新读取系统主题。 关于新版 COSMIC Epoch 1.1 桌面版本的更多详情,请访问 GitHub。 一行代码改动让GCC编译器在现代Intel/AMD CPU上获得+12%基准测试性能提升 GNU Compiler Collection (GCC) 对通用 x86 调优的一行代码改动,正令现代 Intel 和 AMD 处理器受益。 Intel 软件工程师 Lili Cui 发现,增加 GCC 编译器中通用 x86 调优的误预测代价(misprediction cost)相当值得。现代 CPU 拥有更深的流水线,分支误预测(branch mispredictions)的代价更高,因此在通用调优表中提高误预测代价有助于避免因误预测分支导致的流水线停顿。这一改动适用于仅依赖通用 x86/x86_64 调优、而非特定 CPU 的 -march=native 类型构建。 只需将分支误预测比例(branch mispredict scale)增加 3,便发现 Granite Rapids 性能提升 12.7%,AMD Zen 5 提升 12.1%。这是针对 SPEC CPU 2017 的 544.nab_r Nucleic Acid Builder (NAB) 测试用例。Git 提交/补丁中没有分享其他性能数据,但至少在 SPEC CPU 测试用例上获得 12% 的提升已经相当诱人——尤其仅通过一行代码改动——看看对其他工作负载的影响将会很有趣。 该改动已合入 GCC Git,用于明年的 GCC 17 稳定版。