除了即将到来的 Linux 7.0 中令人兴奋的 Intel/AMD x86_64 变化和改进之外,这个内核周期中还有一个值得注意的 ARM64 功能新增。
Linux 7.0 对 ARM64 的主要特性是支持 64 字节单拷贝原子指令(LS64/LS64V)。Armv8.7 引入了单拷贝 64 字节加载和存储指令。在 Linux 7.0 中,这些新指令已经连接好,现在通过/proc/cpuinfo 和硬件能力对用户空间可见。补丁系列指出:
“Armv8.7 引入了单拷贝原子 64 字节加载和存储指令,其变体命名为 FEAT_{LS64, LS64_V}。
…
这一特性的一个实际场景是,用户空间驱动可以利用它来实现直接 WQE(工作队列入口)——一种直接将 WQE 填充到硬件的机制。”
这种加速的、原子的 64 字节块移动应该有助于在更高性能的 Linux 场景中支持 ARM。这些补丁还负责将 LS64_V 暴露给 Linux KVM 客机。

通过这次拉取请求,ARM64 在 AmpereOne 处理器上执行内核操作时,也减少了内存标记扩展(MTE)的开销。该补丁解释:
“我们在 AmpereOne 机器上启用用户空间 MTE 并运行 memcached 时,测量到严重的性能开销(25-50%)。
我们识别到内核中存在过多的标签检查。”
…
对于启用 MTE 的工作负载,我们测量了该系列在 95%置信度下对”perf bench futex hash”提升了 2%。此外,我们使用了 Phoronix Test Suite 的 pts/memcached 基准测试,其中包含一个以获取为主的负载(1:10 设置:获取比例),这是减速现象最明显的地方。随着核心数量的增加,减速会加剧,并在 32 核以上趋于平稳。
在 Linux 7.0 的 ARM64 更新中,Spectre-BHB 同时在 HiSilicon TSV110 处理器上得到了规避。
Linux 7.0 的所有 ARM64 更新可以通过这个已经合并到 Linux 7.0 Git 的拉取请求找到。
转自 Linux 7.0 Wires Up Arm’s 64-byte Single-Copy Atomic Instructions LS64/LS64V – Phoronix
Linuxeden开源社区