Yashme: detecting persistency races

Yashme: detecting persistency races
复制标题

DOI:
10.1145/3503222.3507766
复制
发表时间:
2022-02
期刊:
Proceedings of the 27th ACM International Conference on Architectural Support for Programming Languages and Operating Systems
影响因子:
--
通讯作者:
Hamed Gorjiara;G. Xu;Brian Demsky
Hamed Gorjiara;G. Xu;Brian Demsky
中科院分区:
其他
文献类型:
--
作者:
Hamed Gorjiara;G. Xu;Brian Demsky

文献摘要

被引文献

相似文献

持续的内存(PM)或非挥发性随机存储器(NVRAM)硬件,例如Intel的Optane Memory产品有望改变程序如何存储和操纵信息。持续记忆程序的崩溃一致性错误,我们称之为持久性种族。持久性。具有持久性竞赛的商店及其相应的高速公路冲洗操作,使Yashme的挑战使其挑战挑战在执行中检测赛车的新技术是预击的前缀,即使注射崩溃没有落入该窗口,Yashme也可以有效地找到持久性种族。记忆基准,并发现了26种真正的持久性种族,这些竞赛从未报道过。
Persistent memory (PM) or Non-Volatile Random-Access Memory (NVRAM) hardware such as Intel’s Optane memory product promises to transform how programs store and manipulate information. Ensuring that persistent memory programs are crash consistent is a major challenge. We present a novel class of crash consistency bugs for persistent memory programs, which we call persistency races. Persistency races can cause non-atomic stores to be made partially persistent. Persistency races arise due to the interaction of standard compiler optimizations with persistent memory semantics. We present Yashme, the first detector for persistency races. A major challenge is that in order to detect persistency races, the execution must crash in a very narrow window between a store with a persistency race and its corresponding cache flush operation, making it challenging for naïve techniques to be effective. Yashme overcomes this challenge with a novel technique for detecting races in executions that are prefixes of the pre-crash execution. This technique enables Yashme to effectively find persistency races even if the injected crashes do not fall into that window. We have evaluated Yashme on a range of persistent memory benchmarks and have found 26 real persistency races that have never been reported before.