🤖 AI Summary
Dynamic race detection under weak memory models—particularly C11—suffers from instrumentation-induced synchronization, which masks genuine weak-consistency races and invalidates robustness verification.
Method: This paper proposes the first dynamic robustness verification method for the C11 memory model. Its core innovation is a lightweight, location-clock–based dynamic algorithm that enables program-specific defense while preserving the original memory ordering; it enforces strong-consistency behavior constraints without perturbing the underlying weak semantics. We implement this approach in RSAN, a tool integrating C11 semantic modeling, dynamic instrumentation, runtime monitoring, and static heuristic adaptation.
Contribution/Results: Experiments demonstrate that RSAN effectively identifies non-robust program behaviors across diverse scenarios, validating the feasibility and practicality of dynamic robustness checking. To our knowledge, this work fills a critical gap in the literature on dynamic robustness verification for C11.
📝 Abstract
Dynamic race detection is a highly effective runtime verification technique for identifying data races by instrumenting and monitoring concurrent program runs. However, standard dynamic race detection is incompatible with practical weak memory models; the added instrumentation introduces extra synchronization, which masks weakly consistent behaviors and inherently misses certain data races. In response, we propose to dynamically verify program robustness-a property ensuring that a program exhibits only strongly consistent behaviors. Building on an existing static decision procedures, we develop an algorithm for dynamic robustness verification under a C11-style memory model. The algorithm is based on"location clocks", a variant of vector clocks used in standard race detection. It allows effective and easy-to-apply defense against weak memory on a per-program basis, which can be combined with race detection that assumes strong consistency. We implement our algorithm in a tool, called RSAN, and evaluate it across various settings. To our knowledge, this work is the first to propose and develop dynamic verification of robustness against weak memory models.