Thread-Modular Static Analysis for Relaxed Memory Models

09/28/2017
by   Markus Kusano, et al.
0

We propose a memory-model-aware static program analysis method for accurately analyzing the behavior of concurrent software running on processors with weak consistency models such as x86-TSO, SPARC-PSO, and SPARC-RMO. At the center of our method is a unified framework for deciding the feasibility of inter-thread interferences to avoid propagating spurious data flows during static analysis and thus boost the performance of the static analyzer. We formulate the checking of interference feasibility as a set of Datalog rules which are both efficiently solvable and general enough to capture a range of hardware-level memory models. Compared to existing techniques, our method can significantly reduce the number of bogus alarms as well as unsound proofs. We implemented the method and evaluated it on a large set of multithreaded C programs. Our experiments showthe method significantly outperforms state-of-the-art techniques in terms of accuracy with only moderate run-time overhead.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
05/18/2017

Exploiting Term Hiding to Reduce Run-time Checking Overhead

One of the most attractive features of untyped languages is the flexibil...
research
04/07/2018

Symbolic Reasoning for Automatic Signal Placement (Extended Version)

Explicit signaling between threads is a perennial cause of bugs in concu...
research
12/14/2019

Conquering the Extensional Scalability Problem for Value-Flow Analysis Frameworks

With an increasing number of value-flow properties to check, existing st...
research
10/26/2021

Neural Program Generation Modulo Static Analysis

State-of-the-art neural models of source code tend to be evaluated on th...
research
11/14/2022

On Consistency for Bulk-Bitwise Processing-in-Memory

Processing-in-memory (PIM) architectures allow software to explicitly in...
research
07/10/2018

Datalog-based Scalable Semantic Diffing of Concurrent Programs

When an evolving program is modified to address issues related to thread...
research
09/28/2017

Modular Verification of Interrupt-Driven Software

Interrupts have been widely used in safety-critical computer systems to ...

Please sign up or login with your details

Forgot password? Click here to reset