【翻译】split lock检测与处理
本文在解读 https://lwn.net/Articles/790464/ 的基础上,加入自己理解,与原文存在差异。
从地址不对齐访问到split lock
Intel CPU微架构允许不对齐的内存访问,但ARM、RISC-V等架构却不允许。在众多的不对齐中,一个特殊的场景是:原子操作的操作数(由于地址不对齐)跨越两个cache lines,Intel将之叫做split lock。它有两个特征:
- 原子操作,即汇编指令包含Lock前缀;
- 操作数地址不对齐,还跨越两个cache lines;
其实大部分吃瓜群众都不知道这个特性,但是它却对应用性能影响极大。最近,Intel工程师Fenghua Yu同学正在开发一组内核补丁,用于检测和处理split lock,现在已经发出了第8版code review。阿里巴巴在多年前就意识到split loc