
上周为 Linux 6.17 合并的是 FUTEX 锁定更改,其中包括解决观察到的性能瓶颈。
英特尔的著名 Linux 工程师 Peter Zijlstra 调整了 FUTEX 代码,以使用基于 RCU 的每个 CPU 引用计数,以解决使用单个实例变体的现有代码中发现的性能瓶颈。
Peter 解释了解决 FUTEX 性能瓶颈的补丁:
“在futex操作期间,当多个线程同时访问时,使用rcuref_t进行引用计数会引入性能瓶颈。
将rcuref_t替换为特制的每个 CPU 引用计数器。生命周期逻辑保持不变。
新分配的私有哈希从FR_PERCPU状态开始。在这种状态下,每个需要私有哈希的 futex操作都使用每个 CPU 计数器(无符号整数)来递增或递减引用计数。
FUTEX 改进上周已合并到 Linux 6.17 Git 中,作为锁定/futex 拉取请求的一部分。
转自 Linux 6.17 Fixes A Performance Bottleneck In The Futex Code – Phoronix
Linuxeden开源社区