Overview
Explore the development of Pmemcheck, a new Valgrind-based tool for detecting persistent memory programming errors, in this 55-minute conference talk. Dive into the motivations behind creating a specialized error detector and the decision to utilize the Valgrind framework. Gain insights into common challenges associated with byte-addressable persistent memory usage. Examine the intricate design of Pmemcheck and the modifications made to Valgrind's core to accommodate persistent memory support. Learn about persistent memory programming models, phase safety, atomicity, and implementation details. Discover how Pmemcheck compares to MemCheck, understand its functionality, and explore practical examples of its application. Conclude with a look at future developments and participate in a Q&A session to deepen your understanding of this innovative tool for enhancing persistent memory programming practices.
Syllabus
Introduction
Persistent Memory Programming Model
Phase Safety
Atomicity
Story
Requirements
New tool
Binary instrumentation framework
Twoyear tool
Request mechanism
Implementation
Pros Cons
What is MemCheck
What is MemCheck not
Implementation of MemCheck
CRM Macros
State Machine
In Practice
Simple Example
Another Problem
Example
Transaction Nesting
Transaction IDs
Logging
Testing
repos
future work
questions
Taught by
Linux Foundation