Understanding and detecting deep memory persistency bugs in NVM programs with DeepMC

Understanding and detecting deep memory persistency bugs in NVM programs with DeepMC
复制标题

使用 DeepMC 了解和检测 NVM 程序中的深度内存持久性错误

DOI:
10.1145/3503221.3508427
复制
发表时间:
2022
期刊:
Proceedings of the 27th ACM SIGPLAN Annual Symposium on Principles and Practice of Parallel Programming (PPoPP'22
影响因子:
--
通讯作者:
Huang, Jian
Huang, Jian
中科院分区:
--
文献类型:
--
作者:
Reidys, Benjamin;Huang, Jian

文献摘要

参考文献

被引文献

相似文献

为了便于使用非易失性存储器(NVM)进行编程,已经提出了一组存储器持久化模型,诸如严格持久化和历元持久化。尽管这些模型为数据持久性的推理提供了高级指导,但正确地实现它们并不是一件容易的事。我们对开发良好的NVM框架和库的研究表明,其中许多框架和库具有与模型规范密切相关的深层语义错误。此外,它是很难检测到他们与现有的测试和错误发现工具。为了进一步了解这些持久性的错误,我们进行了表征研究,并提出了这些持久性的错误的分类。我们发现,许多持久化错误是由模型规格和它们在NVM程序中的真实的实现之间的语义不匹配引起的。为了识别这些深层持久化错误,我们构建了一个名为DeepMC的工具包,包含静态和动态分析。DeepMC由一组基于我们的特征研究和持久化模型规范的规则驱动。我们的研究结果表明,DeepMC可以有效地查明各种NVM编程框架/库中的各种持久化错误,以及它们的示例程序,包括Intel的PMDK和持久化内存文件系统(PMFS),Oracle的NVM-Direct库以及学术界的Mnemosyne框架。
To facilitate programming with non-volatile memory (NVM), a set of memory persistency models, such as strict and epoch persistency, have been proposed. Although these models provide high-level guidance for reasoning about the data persistence, implementing them correctly is nontrivial. Our study of the well-developed NVM frameworks and libraries reveals that many of them have deep semantic bugs that are strongly relevant to the model specifications. Furthermore, it is difficult to detect them with existing testing and bug-finding tools.To further understand these persistency bugs, we conduct a characterization study, and present a taxonomy of these persistency bugs. We find that many persistency bugs are caused by the semantic mismatches between the model specifications and their real implementation in NVM programs. To identify these deep persistency bugs, we build a toolkit named DeepMC with both static and dynamic analysis. DeepMC is driven by a set of rules based on our characterization study and persistency model specifications. Our results show that DeepMC can efficiently pinpoint various persistency bugs in a variety of NVM programming frameworks/libraries, and their example programs, including PMDK and persistent memory file system (PMFS) from Intel, the NVM-Direct library from Oracle, and Mnemosyne framework from academia.
DOI: 10.1109/isca45697.2020.00055
发表时间: 2020-05
期刊: 2020 ACM/IEEE 47th Annual International Symposium on Computer Architecture (ISCA)
影响因子: --
作者:
Miao Cai;Chance C. Coats;Jian Huang
通讯作者: Miao Cai;Chance C. Coats;Jian Huang
DOI: 10.1145/3132747.3132770
发表时间: 2017-10
期刊: Proceedings of the 26th Symposium on Operating Systems Principles
影响因子: --
作者:
Youngjin Kwon;Henrique Fingler;T. Hunt;Simon Peter;Emmett Witchel;T. Anderson
通讯作者: Youngjin Kwon;Henrique Fingler;T. Hunt;Simon Peter;Emmett Witchel;T. Anderson
DOI: 10.1145/3445814.3446691
发表时间: 2021-04
期刊: Proceedings of the 26th ACM International Conference on Architectural Support for Programming Languages and Operating Systems
影响因子: --
作者:
Sihang Liu;Suyash Mahar;Baishakhi Ray;S. Khan
通讯作者: Sihang Liu;Suyash Mahar;Baishakhi Ray;S. Khan
UniHeap:跨托管运行时管理非易失性内存的持久对象
DOI: 10.1145/3456727.3463775
发表时间: 2021
期刊: SYSTOR '21: Proceedings of the 14th ACM International Conference on Systems and Storage
影响因子: --
作者:
Li, Daixuan;Reidys, Benjamin;Sun, Jinghan;Shull, Thomas;Torrellas, Josep;Huang, Jian
通讯作者: Huang, Jian
DOI: 10.1145/3445814.3446735
发表时间: 2021-04
期刊: Proceedings of the 26th ACM International Conference on Architectural Support for Programming Languages and Operating Systems
影响因子: --
作者:
Hamed Gorjiara;G. Xu;Brian Demsky
通讯作者: Hamed Gorjiara;G. Xu;Brian Demsky