在 Linus Torvalds 由于暴风雪而失去互联网和电力从而影响 Linux 6.8 集成窗口之前,他的周末已经很糟糕了,因为新的 Linux 6.8 代码导致他的 Linux 内核构建面临性能下降。 它是以前核心的两倍。 AMD Linux 工程师能够重现该回归,并且与主要开发人员一起,现在在最新的调度代码中找到了针对此问题的确认解决方案。
在讨论 Linus Torvalds 报告的因 Linux 6.8 中的调度程序更改而导致的重大性能回归时,对于拆分提交,开发人员并不清楚导致回归的原因。 在随后的讨论中,AMD 的 Wise Carney 发表了讲话 提及 它还可以重现回归。 Wyes 使用的是普通的 AMD Ryzen 5600G 台式机,而不是 Torvalds 使用的高端 AMD Ryzen Threadripper。 他提出的一个重要说明是,只有当您从 BIOS 禁用 ACPI CPPC 并将 ACPI CPUFreq 与 Schedutil 调控器一起使用时,才会重现这一情况。
大多数 AMD Zen 2 及更高版本的系统都支持 ACPI CPPC,因此对于 Ryzen 端的现代核心,它们通常使用新的 AMD P-State 驱动程序。 但对于 Zen 2 / Zen 3 和更早的系统(或从 BIOS 禁用 CPPC 的系统),仍然使用 CPUFreq 驱动程序,默认的 CPU 频率调节器通常是“Schedutil”以利用调度程序使用数据。
通过邮件列表上的这个帖子,提出了更正建议,并讨论了此回归的具体问题。 最终,Vincent Guiteau 相信他找到了回归问题的解决方案,并且 Wise 能够成功测试该补丁。
吉托现已发送 预定/公平:修复不稳定情况下的频率选择 作为修复使用 ACPI CPUFreq + Schedutil 时在新 Linux 6.8 代码上出现的不良回归的补丁。 解释并修正:
“当未启用频率持久性时,get_capacity_ref_freq(policy)返回当前频率和map_util_perf()应用的性能裕度,使使用量能够超过最大计算容量并选择高于当前频率的频率。
现在,性能裕度已在管道的早期应用,以解决某些使用限制,并且我们无法使使用量超过最大计算容量。
我们必须使用比当前频率更高的频率,以便在当前频率完全使用时有机会设置更高的 OPP。 应用相同的余量并返回比当前频率高 25% 的频率,以便在我们用完当前处理器中的整个 CPU 之前切换到下一个 OPP。”
最终,一行代码修复解决了这一性能下降问题,导致 Linus Torvalds 的空内核构建时间从 22 秒增加到 44 秒。
假设新补丁的测试一切顺利,一旦 Linus Torvalds 的互联网和电力恢复,该修复应该会进入 Linux 6.8 Git 代码中。
“极端问题解决者。旅行忍者。典型的网络迷。浏览器。作家。读者。无法治愈的组织者。”
More Stories
Android 15/One UI 7 正在针对 Galaxy A53、A54 等进行测试
《Helldivers 2》的重大更新招致了负面评价,而且玩家数量并未增加一倍
据报道,谷歌 Pixel 9 将获得一些新的 Gemini AI 功能