2015
DOI: 10.1145/2858965.2814297
|View full text |Cite
|
Sign up to set email alerts
|

SATCheck: SAT-directed stateless model checking for SC and TSO

Abstract: Writing low-level concurrent code is well known to be challenging and error prone. The widespread deployment of multi-core hardware and the shift towards using low-level concurrent data structures has moved the problem into the mainstream. Finding bugs in such code may require finding a specific bug-revealing thread interleaving out of a huge space of parallel executions. Model-checking is a powerful technique for exhaustively testing code. However, scaling model checking presents a significant challenge. In t… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1

Citation Types

0
4
0

Year Published

2016
2016
2023
2023

Publication Types

Select...
5
1
1

Relationship

0
7

Authors

Journals

citations
Cited by 14 publications
(4 citation statements)
references
References 30 publications
0
4
0
Order By: Relevance
“…Some rely on SAT solvers to discover executions [18,25,75,83], while others enumerate them explicitly [10,12,16,60,67,68]. Our work tackles, in a sense, the 'inverse' problem: we start with executions that witness interesting MCM properties, and go on to produce programs that can give rise to these executions.…”
Section: Related Workmentioning
confidence: 99%
“…Some rely on SAT solvers to discover executions [18,25,75,83], while others enumerate them explicitly [10,12,16,60,67,68]. Our work tackles, in a sense, the 'inverse' problem: we start with executions that witness interesting MCM properties, and go on to produce programs that can give rise to these executions.…”
Section: Related Workmentioning
confidence: 99%
“…5) gather threads into groups 23 24 . Some PTX fences (membar.gl) have whole-device scope 25 , and others (membar.cta) have only workgroup scope. There are no nonatomic locations 26 , sequencing is total within each thread 27 , and we do not consider RMWs 28 .…”
Section: Language-specific Executionsmentioning
confidence: 99%
“…Moreover, we define a sequentialization procedure that uncovers bugs which are not found by state-of-the art testing tools for asynchronous protocols. There are many verification and testing tools for sequential programs and shared memory systems [20,21], that could be applied on the sequentialization computed by our method, contrary to the output of [12,19], where tools for distributed synchronous protocols are not available.…”
Section: Introductionmentioning
confidence: 99%