{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T04:16:16Z","timestamp":1750220176319,"version":"3.41.0"},"publisher-location":"New York, NY, USA","reference-count":64,"publisher":"ACM","license":[{"start":{"date-parts":[[2022,3,28]],"date-time":"2022-03-28T00:00:00Z","timestamp":1648425600000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"name":"NSF","award":["CCF-2107470"],"award-info":[{"award-number":["CCF-2107470"]}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":[],"published-print":{"date-parts":[[2022,4,2]]},"DOI":"10.1145\/3503221.3508427","type":"proceedings-article","created":{"date-parts":[[2022,3,28]],"date-time":"2022-03-28T13:58:22Z","timestamp":1648475902000},"page":"322-336","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":3,"title":["Understanding and detecting deep memory persistency bugs in NVM programs with DeepMC"],"prefix":"10.1145","author":[{"given":"Benjamin","family":"Reidys","sequence":"first","affiliation":[{"name":"University of Illinois"}]},{"given":"Jian","family":"Huang","sequence":"additional","affiliation":[{"name":"University of Illinois"}]}],"member":"320","published-online":{"date-parts":[[2022,3,28]]},"reference":[{"key":"e_1_3_2_1_2_1","unstructured":"Redis Benchmark. 2020. Redis Benchmark. https:\/\/redis.io\/topics\/benchmarks."},{"key":"e_1_3_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1109\/ISCA45697.2020.00055"},{"key":"e_1_3_2_1_4_1","volume-title":"Proceedings of the VLDB Endowment","author":"Chatzistergiou Andreas","year":"2015","unstructured":"Andreas Chatzistergiou, Marcelo Cintra, and Stratis D Viglas. 2015. Rewind: Recovery write-ahead system for in-memory non-volatile data-structures. Proceedings of the VLDB Endowment (2015)."},{"key":"e_1_3_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/2517349.2522726"},{"key":"e_1_3_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/1950365.1950380"},{"key":"e_1_3_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.1145\/1807128.1807152"},{"key":"e_1_3_2_1_8_1","volume-title":"Proceedings of the 25th ACM International Symposium on High-Performance Parallel and Distributed Computing.","author":"Lee Joel","year":"2016","unstructured":"Denny, Joel E and Lee, Seyong and Vetter, Jeffrey S. 2016. NVL-C: Static analysis techniques for efficient, correct programming of non-volatile main memory systems. In Proceedings of the 25th ACM International Symposium on High-Performance Parallel and Distributed Computing."},{"key":"e_1_3_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/3445814.3446744"},{"key":"e_1_3_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1145\/3341301.3359637"},{"key":"e_1_3_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/2592798.2592814"},{"volume-title":"Proceedings of the ACM\/IEEE 47th Annual International Symposium on Computer Architecture (ISCA'20)","author":"Gogte Vaibhav","key":"e_1_3_2_1_12_1","unstructured":"Vaibhav Gogte, William Wang, Stephan Diestelhorst, Peter M. Chen, Satish Narayanasamy, and Thomas F. Wenisch. 2020. Relaxed Persist Ordering Using Strand Persistency. In Proceedings of the ACM\/IEEE 47th Annual International Symposium on Computer Architecture (ISCA'20)."},{"key":"e_1_3_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/3445814.3446735"},{"key":"e_1_3_2_1_14_1","volume-title":"Nonvolatile Memories Workshop.","author":"Haria Swapnil","year":"2017","unstructured":"Swapnil Haria, Sanketh Nalli, MM Swift, MD Hill, H Volos, and K Keeton. 2017. Hands-off persistence system (HOPS). In Nonvolatile Memories Workshop."},{"volume-title":"Proceedings of the 41th International Conference on Very Large Data Bases (VLDB'15)","author":"Huang Jian","key":"e_1_3_2_1_15_1","unstructured":"Jian Huang, Karsten Schwan, and Moinuddin K. Qureshi. 2015. NVRAM-award Logging in Transaction Systems. In Proceedings of the 41th International Conference on Very Large Data Bases (VLDB'15). Kohala Coast, HI."},{"key":"e_1_3_2_1_16_1","unstructured":"Intel. [n.d.]. How to detect persistent memory programming errors using Intel Inspector. https:\/\/software.intel.com\/en-us\/articles\/detect-persistent-memory-programming-errors-with-intel-inspector-persistence-inspector."},{"key":"e_1_3_2_1_17_1","unstructured":"Intel. 2018. Intel Optane Technology. https:\/\/www.intel.com\/content\/www\/us\/en\/architecture-and-technology\/intel-optane-technology.html."},{"key":"e_1_3_2_1_18_1","unstructured":"Intel. 2019. Discover Persistent Memory Programming Errors with Pmemcheck. https:\/\/software.intel.com\/en-us\/articles\/discover-persistent-memory-programming-errors-with-pmemcheck."},{"key":"e_1_3_2_1_19_1","unstructured":"Intel 2019. Intel Optane DC Persistent Memory. https:\/\/www.intel.com\/content\/www\/us\/en\/architecture-and-technology\/optane-technology\/optane-for-data-centers.html."},{"key":"e_1_3_2_1_20_1","unstructured":"intel:clwb 2015. Intel 64 and IA-32 Architectures Software Develop's Manual. https:\/\/www.intel.com\/content\/dam\/www\/public\/us\/en\/documents\/manuals\/64-ia-32-architectures-software-developer-\\instruction-set-reference-manual-325383.pdf."},{"key":"e_1_3_2_1_21_1","volume-title":"Zixuan Wang, Yi Xu, Subramanya R. Dulloor, Jishen Zhao, and Steven Swanson.","author":"Izraelevitz Joseph","year":"2019","unstructured":"Joseph Izraelevitz, Jian Yang, Lu Zhang, Juno Kim, Xiao Liu, Amirsaman Memaripour, Yun Joon Soh, Zixuan Wang, Yi Xu, Subramanya R. Dulloor, Jishen Zhao, and Steven Swanson. 2019. Basic Performance Measurements of the Intel Optane DC Persistent Memory Module. arXiv:1903.05714 [cs.DC]"},{"key":"e_1_3_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1145\/3341301.3359631"},{"key":"e_1_3_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1109\/MDT.2010.97"},{"volume-title":"Language-Level Persistency. In Proceedings of the 44th Annual International Symposium on Computer Architecture (ISCA'17)","author":"Kolli Aasheesh","key":"e_1_3_2_1_24_1","unstructured":"Aasheesh Kolli, Vaibhav Gogte, Ali Saidi, Stephan Diestelhorst, Peter M. Chen, Satish Narayanasamy, and Thomas F. Wenisch. 2017. Language-Level Persistency. In Proceedings of the 44th Annual International Symposium on Computer Architecture (ISCA'17). Toronto, ON, Canada."},{"key":"e_1_3_2_1_25_1","volume-title":"Proceedings of the Twenty-First International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS '16","author":"Kolli Aasheesh","year":"2016","unstructured":"Aasheesh Kolli, Steven Pelley, Ali G. Saidi, Peter M. Chen, and Thomas F. Wenisch. 2016. High-Performance Transactions for Persistent Memories. In Proceedings of the Twenty-First International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS '16, Atlanta, GA, USA, April 2--6, 2016. 399--411."},{"key":"e_1_3_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.5555\/3195638.3195709"},{"key":"e_1_3_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1145\/3132747.3132770"},{"key":"e_1_3_2_1_28_1","volume-title":"2014 USENIX Annual Technical Conference (USENIX ATC'14)","author":"Lantz Philip","year":"2014","unstructured":"Philip Lantz, Subramanya Dulloor, Sanjay Kumar, Rajesh Sankaran, and Jeff Jackson. 2014. Yat: A validation framework for persistent memory software. In 2014 USENIX Annual Technical Conference (USENIX ATC'14). 433--438."},{"key":"e_1_3_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1145\/1250734.1250766"},{"key":"e_1_3_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1145\/1555754.1555758"},{"key":"e_1_3_2_1_31_1","volume-title":"Architecting phase change memory as a scalable dram alternative. ACM SIGARCH Computer Architecture News","author":"Lee Benjamin C","year":"2009","unstructured":"Benjamin C Lee, Engin Ipek, Onur Mutlu, and Doug Burger. 2009. Architecting phase change memory as a scalable dram alternative. ACM SIGARCH Computer Architecture News (2009)."},{"volume-title":"Proceedings of the Twenty-First International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS'16)","author":"Leesatapornwongsa Tanakorn","key":"e_1_3_2_1_32_1","unstructured":"Tanakorn Leesatapornwongsa, Jeffrey F. Lukman, Shan Lu, and Haryadi S. Gunawi. 2016. TaxDC: A Taxonomy of Non-Deterministic Concurrency Bugs in Datacenter Distributed Systems. In Proceedings of the Twenty-First International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS'16). Atlanta, GA."},{"key":"e_1_3_2_1_33_1","doi-asserted-by":"publisher","DOI":"10.1145\/3456727.3463775"},{"key":"e_1_3_2_1_34_1","doi-asserted-by":"publisher","DOI":"10.1145\/3314221.3314620"},{"key":"e_1_3_2_1_35_1","doi-asserted-by":"publisher","DOI":"10.1145\/3445814.3446691"},{"key":"e_1_3_2_1_36_1","doi-asserted-by":"publisher","DOI":"10.1145\/3373376.3378452"},{"key":"e_1_3_2_1_37_1","doi-asserted-by":"publisher","DOI":"10.1145\/3297858.3304015"},{"key":"e_1_3_2_1_38_1","volume-title":"DSA","author":"LLVM","year":"2021","unstructured":"LLVM DSA 2021. LLVM DSA. https:\/\/llvm.org\/docs\/AliasAnalysis.html#the-ds-aa-pass."},{"key":"e_1_3_2_1_39_1","volume-title":"9th USENIX Workshop on Hot Topics in Storage and File Systems (HotStorage 17)","author":"Marathe Virendra J.","year":"2017","unstructured":"Virendra J. Marathe, Margo Seltzer, Steve Byan, and Tim Harris. 2017. Persistent Memcached: Bringing Legacy Code to Byte-Addressable Persistent Memory. In 9th USENIX Workshop on Hot Topics in Storage and File Systems (HotStorage 17). USENIX Association, Santa Clara, CA. https:\/\/www.usenix.org\/conference\/hotstorage17\/program\/presentation\/marathe"},{"key":"e_1_3_2_1_40_1","doi-asserted-by":"publisher","DOI":"10.1145\/2524211.2524216"},{"key":"e_1_3_2_1_41_1","volume-title":"Memory Consistency Models. ACM SIGOPS Operating Systems Review","author":"Mosberger David","year":"1993","unstructured":"David Mosberger. 1993. Memory Consistency Models. ACM SIGOPS Operating Systems Review (1993)."},{"key":"e_1_3_2_1_42_1","doi-asserted-by":"publisher","DOI":"10.1145\/3037697.3037730"},{"key":"e_1_3_2_1_43_1","volume-title":"14th USENIX Symposium on Operating Systems Design and Implementation (OSDI'20)","author":"Neal Ian","year":"2020","unstructured":"Ian Neal, Ben Reeves, Ben Stoler, Andrew Quinn, Youngjin Kwon, Simon Peter, and Baris Kasikci. 2020. AGAMOTTO: How Persistent is your Persistent Memory Application?. In 14th USENIX Symposium on Operating Systems Design and Implementation (OSDI'20)."},{"key":"e_1_3_2_1_44_1","unstructured":"nstore [n.d.]. An Efficient Database System Designed for Non-Volatile Memory (NVM). https:\/\/github.com\/snalli\/nstore."},{"key":"e_1_3_2_1_45_1","unstructured":"NVDIMM. 2020. Non-Volatile Dual In-line Memory Module (NVDIMM). https:\/\/en.wikipedia.org\/wiki\/NVDIMM."},{"key":"e_1_3_2_1_46_1","unstructured":"Oracle. 2015. NVM Direct. https:\/\/github.com\/oracle\/nvm-direct."},{"key":"e_1_3_2_1_47_1","volume-title":"Memory Persistency. In ACM\/IEEE 41st International Symposium on Computer Architecture, ISCA 2014","author":"Pelley Steven","year":"2014","unstructured":"Steven Pelley, Peter M. Chen, and Thomas F. Wenisch. 2014. Memory Persistency. In ACM\/IEEE 41st International Symposium on Computer Architecture, ISCA 2014, Minneapolis, MN, USA, June 14--18, 2014."},{"volume-title":"Memory Persistency. In Proceeding of the 41st Annual International Symposium on Computer Architecuture","author":"Pelley Steven","key":"e_1_3_2_1_48_1","unstructured":"Steven Pelley, Peter M. Chen, and Thomas F. Wenisch. 2014. Memory Persistency. In Proceeding of the 41st Annual International Symposium on Computer Architecuture (Minneapolis, Minnesota, USA) (ISCA '14). IEEE Press, Piscataway, NJ, USA, 265--276. http:\/\/dl.acm.org\/citation.cfm?id=2665671.2665712"},{"key":"e_1_3_2_1_49_1","unstructured":"pmemio 2017. Persistent Memory Programming. https:\/\/pmem.io\/."},{"key":"e_1_3_2_1_50_1","unstructured":"pmem:PMDK [n.d.]. Persistent Memory Development Kit. http:\/\/pmem.io\/pmdk\/"},{"key":"e_1_3_2_1_51_1","volume-title":"36th International Symposium on Computer Architecture (ISCA 2009","author":"Qureshi Moinuddin K.","year":"2009","unstructured":"Moinuddin K. Qureshi, Vijayalakshmi Srinivasan, and Jude A. Rivers. 2009. Scalable high performance main memory system using phase-change memory technology. In 36th International Symposium on Computer Architecture (ISCA 2009), June 20--24, 2009, Austin, TX, USA. 24--33."},{"key":"e_1_3_2_1_52_1","unstructured":"Redis. 2020. Redis Key-Value Store. https:\/\/redis.io\/."},{"key":"e_1_3_2_1_53_1","doi-asserted-by":"publisher","DOI":"10.1145\/3124680.3124729"},{"key":"e_1_3_2_1_54_1","doi-asserted-by":"publisher","DOI":"10.1145\/1791194.1791203"},{"key":"e_1_3_2_1_55_1","doi-asserted-by":"publisher","DOI":"10.1145\/3314221.3314608"},{"key":"e_1_3_2_1_56_1","doi-asserted-by":"publisher","DOI":"10.1145\/237721.237727"},{"key":"e_1_3_2_1_57_1","unstructured":"LLVM team. [n.d.]. The LLVM Compiler Infrastructure. https:\/\/llvm.org."},{"volume-title":"Proceedings of the Sixteenth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS'11)","author":"Volos Haris","key":"e_1_3_2_1_58_1","unstructured":"Haris Volos, Andres Jaan Tack, and Michael M. Swift. 2011. Mnemosyne: Lightweight Persistent Memory. In Proceedings of the Sixteenth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS'11). Newport Beach, California, USA."},{"key":"e_1_3_2_1_59_1","doi-asserted-by":"publisher","DOI":"10.1145\/1950365.1950379"},{"key":"e_1_3_2_1_60_1","doi-asserted-by":"publisher","DOI":"10.1145\/3173162.3173201"},{"key":"e_1_3_2_1_61_1","doi-asserted-by":"publisher","DOI":"10.1109\/HPCA.2015.7056056"},{"key":"e_1_3_2_1_62_1","volume-title":"NOVA: A Log-structured File System for Hybrid Volatile\/Non-volatile Main Memories. In 14th USENIX Conference on File and Storage Technologies (FAST'16)","author":"Xu Jian","year":"2016","unstructured":"Jian Xu and Steven Swanson. 2016. NOVA: A Log-structured File System for Hybrid Volatile\/Non-volatile Main Memories. In 14th USENIX Conference on File and Storage Technologies (FAST'16)."},{"key":"e_1_3_2_1_63_1","doi-asserted-by":"publisher","DOI":"10.1145\/3132747.3132761"},{"key":"e_1_3_2_1_64_1","doi-asserted-by":"publisher","DOI":"10.1145\/2043556.2043572"},{"key":"e_1_3_2_1_65_1","doi-asserted-by":"publisher","DOI":"10.1109\/MSST.2015.7208275"}],"event":{"name":"PPoPP '22: 27th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming","sponsor":["SIGPLAN ACM Special Interest Group on Programming Languages","SIGHPC ACM Special Interest Group on High Performance Computing, Special Interest Group on High Performance Computing"],"location":"Seoul Republic of Korea","acronym":"PPoPP '22"},"container-title":["Proceedings of the 27th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming"],"original-title":[],"link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3503221.3508427","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/abs\/10.1145\/3503221.3508427","content-type":"text\/html","content-version":"vor","intended-application":"syndication"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3503221.3508427","content-type":"application\/pdf","content-version":"vor","intended-application":"syndication"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3503221.3508427","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T19:00:49Z","timestamp":1750186849000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3503221.3508427"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2022,3,28]]},"references-count":64,"alternative-id":["10.1145\/3503221.3508427","10.1145\/3503221"],"URL":"https:\/\/doi.org\/10.1145\/3503221.3508427","relation":{},"subject":[],"published":{"date-parts":[[2022,3,28]]},"assertion":[{"value":"2022-03-28","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}