TY - GEN
T1 - SafePM
T2 - 17th European Conference on Computer Systems, EuroSys 2022
AU - Bozdogan, Kartal Kaan
AU - Stavrakakis, Dimitrios
AU - Issa, Shady
AU - Bhatotia, Pramod
N1 - Publisher Copyright:
© 2022 ACM.
PY - 2022/3/28
Y1 - 2022/3/28
N2 - Memory safety violation is a major root cause of reliability and security issues in software systems. Byte-addressable persistent memory (PM), just like its volatile counterpart, is also susceptible to memory safety violations. While there is a couple of decades of work in ensuring memory safety for programs based on volatile memory, the existing approaches are incompatible for PM since the PM programming model introduces a persistent pointer representation for persistent memory objects and allocators, where it is imperative to design a crash consistent safety mechanism. We introduce SafePM, a memory safety mechanism that transparently and comprehensively detects both spatial and temporal memory safety violations for PM-based applications. SafePM's design builds on a shadow memory approach, and augments it with crash consistent data structures and system operations to ensure memory safety even across system reboots and crashes. We implement SafePM based on the AddressSanitizer compiler pass, and integrate it with the PM development kit (PMDK) runtime library. We evaluate SafePM across three dimensions: overheads, effectiveness, and crash consistency. SafePM overall incurs reasonable overheads while providing comprehensive memory safety, and has uncovered real-world bugs in the widely-used PMDK library.
AB - Memory safety violation is a major root cause of reliability and security issues in software systems. Byte-addressable persistent memory (PM), just like its volatile counterpart, is also susceptible to memory safety violations. While there is a couple of decades of work in ensuring memory safety for programs based on volatile memory, the existing approaches are incompatible for PM since the PM programming model introduces a persistent pointer representation for persistent memory objects and allocators, where it is imperative to design a crash consistent safety mechanism. We introduce SafePM, a memory safety mechanism that transparently and comprehensively detects both spatial and temporal memory safety violations for PM-based applications. SafePM's design builds on a shadow memory approach, and augments it with crash consistent data structures and system operations to ensure memory safety even across system reboots and crashes. We implement SafePM based on the AddressSanitizer compiler pass, and integrate it with the PM development kit (PMDK) runtime library. We evaluate SafePM across three dimensions: overheads, effectiveness, and crash consistency. SafePM overall incurs reasonable overheads while providing comprehensive memory safety, and has uncovered real-world bugs in the widely-used PMDK library.
KW - Dependable systems
KW - Memory safety
UR - http://www.scopus.com/inward/record.url?scp=85128093598&partnerID=8YFLogxK
U2 - 10.1145/3492321.3519574
DO - 10.1145/3492321.3519574
M3 - Conference contribution
AN - SCOPUS:85128093598
T3 - EuroSys 2022 - Proceedings of the 17th European Conference on Computer Systems
SP - 506
EP - 524
BT - EuroSys 2022 - Proceedings of the 17th European Conference on Computer Systems
PB - Association for Computing Machinery, Inc
Y2 - 5 April 2022
ER -