Title Verifying Dynamic Race Detection
Year 2017
Venue The 6th ACM SIGPLAN Conference on Certified Programs and Proofs (CPP 2017)
Abstract

Writing race-free concurrent code is notoriously difficult, and data races can result in bugs that are difficult to isolate and reproduce. Dynamic race detection can catch data races that cannot (easily) be detected statically. One approach to dynamic race detection is to instrument the potentially racy code with operations that store and compare metadata, where the metadata implements some known race detection algorithm (e.g. vector-clock race detection). In this paper, we describe the process of formally verifying several algorithms for dynamic race detection. We then turn to implementations, laying out an instrumentation pass for race detection in a simple language and presenting a mechanized formal proof of its correctness: all races in a program will be caught by the instrumentation, and all races detected by the instrumentation are possible in the original program.

Authors Joe Devietti
Steve Zdancewic
William Mansky
Yuanfeng Peng
Involves DeepSpec Projects Vellvm