Linus Torvalds 在周三合并了他编写的一个补丁,通过重新设计,几行代码能够在 Intel 的 “will it scale” 每线程操作基准测试案例中获得 2.6% 的改进。
Linux 创建者 Linus Torvalds 编写的补丁反过来基于内核开发人员 Josh Poimboeuf 提出的早期补丁。目的是避免在 64 位 copy_from_user() 函数中使用 barrier_nospec()。
Linus Torvalds 在 21 行内核补丁中解释道:
“64 位 copy_from_user() 中的 barrier_nospec() 很慢。相反,使用指针掩码来强制用户指针指向无效地址的所有 1。
内核测试机器人报告称,per_thread_ops基准测试提高了 2.6%。
随着 copy_from_user() 用于将数据块从用户空间复制到内核空间,看看这个小的优化最终是否会对任何其他合成或实际工作负载产生影响会很有趣。无论如何,对内核的每一个小优化都会加起来……特别是当这种优化是避免 barrier_nospec 开销的结果时 —— 防止推测执行越过障碍,这是多年来代价高昂的 Spectre 缓解措施的一部分。
此补丁已合并到 Linux Git 中,并将成为下周日 Linux 6.12-rc6 内核版本的一部分,然后 Linux 6.12 稳定版本将于 11 月下半月发布。
转自 Linus Torvalds Lands A 2.6% Performance Improvement With Minor Linux Kernel Patch – Phoronix