一句话:提出面向大型代码库的内存栅栏自动放置技术,以精度换可扩展性,并实现为 musketeer 工具。
现代体系结构通过内存栅栏来避免内存一致性被过度削弱,但栅栏语义精细,精确的一致性恢复方法难以扩展到真实系统代码。本文提出一种以精度换取真正可扩展性的内存栅栏自动放置技术,目标适用于大型代码库;作者将其实现为新工具 musketeer,并在 Debian GNU/Linux 7.1 的 700 多个可执行文件上进行实验,其中包括约 10,000 行代码的 memcached。摘要未给出具体精度或性能数值,但强调该技术面向部署系统代码的可扩展性。
Modern architectures rely on memory fences to prevent undesired weakenings of memory consistency. As the fences’ semantics may be subtle, the automation of their placement is highly desirable. But precise methods for restoring consistency do not scale to deployed systems’ code. We choose to trade some precision for genuine scalability: our technique is suitable for large code bases. We implement it in our new musketeer tool and report experiments on more than 700 executables from packages found in Debian GNU/Linux 7.1, including memcached with about 10,000 LoC.
@article{AlglaveKNP13,
title = {Don’t Sit on the Fence},
author = {Jade Alglave and Daniel Kroening and Vincent Nimal and Daniel Poetzl},
journal = {ACM Transactions on Programming Languages and Systems},
volume = {39},
number = {2},
year = {2017},
doi = {10.1145/2994593}
}