Verifying observational robustness against a c11-style memory model

Roy Margalit, Ori Lahav

Research output: Contribution to journalArticlepeer-review

Abstract

We study the problem of verifying the robustness of concurrent programs against a C11-style memory model that includes relaxed accesses and release/acquire accesses and fences, and show that this verification problem can be reduced to a standard reachability problem under sequential consistency. We further observe that existing robustness notions do not allow the verification of programs that use speculative reads as in the sequence lock mechanism, and introduce a novel "observational robustness"property that fills this gap. In turn, we show how to soundly check for observational robustness. We have implemented our method and applied it to several challenging concurrent algorithms, demonstrating the applicability of our approach. To the best of our knowledge, this is the first method for verifying robustness against a programming language concurrency model that includes relaxed accesses and release/acquire fences.

Original languageEnglish
Article number4
JournalProceedings of the ACM on Programming Languages
Volume5
Issue numberPOPL
DOIs
StatePublished - Jan 2021

Keywords

  • C/C++11
  • robustness
  • shared-memory concurrency
  • weak memory models

Fingerprint

Dive into the research topics of 'Verifying observational robustness against a c11-style memory model'. Together they form a unique fingerprint.

Cite this