Valor: Efficient, Software-Only Region Conflict Exceptions
Data races complicate programming language semantics, and a data race is often a bug. Existing techniques detect data races and define their semantics by detecting conflicts between synchronization-free regions (SFRs). However, such techniques either modify hardware or slow programs dramatically, preventing always-on use today.
This paper describes Valor, a sound, precise, software-only region conflict detection analysis that achieves high performance by eliminating costly analysis on each read operation that prior approaches require. Valor instead logs a region’s reads and lazily detects conflicts for logged reads when the region ends. We have also developed FastRCD, a conflict detector that leverages the epoch optimization strategy of the FastTrack data race detector.
We evaluate Valor, FastRCD, and FastTrack, showing that Valor dramatically outperforms FastRCD and FastTrack. Valor is the first region conflict detector to provide strong semantic guarantees for data races with under 2X slowdown. We also show that Valor is an effective data race detector, providing an appealing cost-coverage tradeoff compared with FastTrack. Overall, Valor advances the state of the art in always-on support for strong behavioral guarantees for data races, and in sound, precise race detection.