Abstract:We address the verification problem of numeric properties in many-threaded concurrent programs under weakly consistent memory models, especially TSO. We build on previous work that proposed an abstract interpretation method to analyse these programs with relational domains. This method was not sufficient to analyse more than two threads in a decent time. Our contribution here is to rely on a relyguarantee framework with automatic inference of thread interferences to design an analysis with a thread-modular app… Show more
“…It is tailored to the verification of algorithms that do not rely on explicit synchronization via mutexes such as the Bakery algorithm. Suzanne and Miné [55] extend the previous work to handle weak memory effects (PSO, TSO) by incorporating memory buffers into the thread-local se-mantics. The notion of interferences is also used by Sharma and Sharma [50] for the analysis of programs under the Release/Acquire Memory Model of C11 by additionally tracking abstractions of modification sequences for global variables.…”
We construct novel thread-modular analyses that track relational information for potentially overlapping clusters of global variables -given that they are protected by common mutexes. We provide a framework to systematically increase the precision of clustered relational analyses by splitting control locations based on abstractions of local traces. As one instance, we obtain an analysis of dynamic thread creation and joining. Interestingly, tracking less relational information for globals may result in higher precision. We consider the class of 2-decomposable domains that encompasses many weakly relational domains (e.g., Octagons). For these domains, we prove that maximal precision is attained already for clusters of globals of sizes at most 2.
“…It is tailored to the verification of algorithms that do not rely on explicit synchronization via mutexes such as the Bakery algorithm. Suzanne and Miné [55] extend the previous work to handle weak memory effects (PSO, TSO) by incorporating memory buffers into the thread-local se-mantics. The notion of interferences is also used by Sharma and Sharma [50] for the analysis of programs under the Release/Acquire Memory Model of C11 by additionally tracking abstractions of modification sequences for global variables.…”
We construct novel thread-modular analyses that track relational information for potentially overlapping clusters of global variables -given that they are protected by common mutexes. We provide a framework to systematically increase the precision of clustered relational analyses by splitting control locations based on abstractions of local traces. As one instance, we obtain an analysis of dynamic thread creation and joining. Interestingly, tracking less relational information for globals may result in higher precision. We consider the class of 2-decomposable domains that encompasses many weakly relational domains (e.g., Octagons). For these domains, we prove that maximal precision is attained already for clusters of globals of sizes at most 2.
“…The goal of this paper is to better understand this intriguing incomparability and develop precision improvements to refine these analyses. We concentrate only on the basic setting of non-relational analysis and a concurrent setting without precise thread id s. We also ignore add-ons such as thread priorities or effects of weak memory, which are of major concern in [1,5,19,20]. As a common framework for the comparison, we use side-effecting constraint systems [2].…”
We give thread-modular non-relational value analyses as abstractions of a local trace semantics. The semantics as well as the analyses are formulated by means of global invariants and side-effecting constraint systems. We show that a generalization of the analysis provided by the static analyzer Goblint as well as a natural improvement of Antoine Miné's approach can be obtained as instances of this general scheme. We show that these two analyses are incomparable w.r.t. precision and provide a refinement which improves on both precision-wise. We also report on a preliminary experimental comparison of the given analyses on a meaningful suite of benchmarks.
“…Under SC, techniques have been proposed for flow-insensitive [33] and flow-sensitive [34] TMA with AI. TMA with AI has also been used to verify programs under weak memory models [35] [36]. While these techniques are sound, they may suffer from false alarms.…”
We investigate the problem of runtime analysis of C11 programs under Multi-Copy-Atomic semantics (MCA ). Under MCA , one can analyze program outcomes solely through interleaving and reordering of thread events. As a result, obtaining intuitive explanations of program outcomes becomes straightforward. Newer versions of ARM (ARMv8 and later), Alpha, and Intel's x-86 support MCA . Our tests reveal that state-of-the-art dynamic verification techniques that analyze program executions under the C11 memory model generate safety property violations that can be interpreted as false alarms under MCA semantics. Sorting the true from false violations puts an undesirable burden on the user. In this work, we provide a dynamic verification technique (MoCA) to analyze C11 program executions which are permitted under the MCA model. We design a happens-before relation and introduce coherence rules to capture precisely those C11 program executions which are allowed under the MCA model. MoCA's exploration of the state-space is based on the state-of-the-art dynamic verification algorithm, source-DPOR. Our experiments validate that MoCA captures all coherent C11 program executions, and is precise for the MCA model. 1 ARMv8 calls its model other-MCA [8]. The difference with MCA is of terminology, not semantics (as clarified by [9]).
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.