Title
CheckFence: checking consistency of concurrent data types on relaxed memory models
Abstract
Concurrency libraries can facilitate the development of multi-threaded programs by providing concurrent implementations of familiar data types such as queues or sets. There exist many optimized algorithms that can achieve superior performance on multiprocessors by allowing concurrent data accesses without using locks. Unfortunately, such algorithms can harbor subtle concurrency bugs. Moreover, they requirememory ordering fences to function correctly on relaxed memory models. To address these difficulties, we propose a verification approach that can exhaustively check all concurrent executions of a given test program on a relaxed memory model and can verify that they are observationally equivalent to a sequential execution. Our CheckFence prototype automatically translates the C implementation code and the test program into a SAT formula, hands the latter to a standard SAT solver, and constructs counter example traces if there exist incorrect executions. Applying CheckFence to five previously published algorithms, we were able to (1) find several bugs (some not previously known), and (2) determine how to place memory ordering fences for relaxed memory models.
Year
DOI
Venue
2007
10.1145/1273442.1250737
Sigplan Notices
Keywords
Field
DocType
concurrent data structures,multi-threading,shared- memory multiprocessors,memory models,lock-free synchro- nization,sequential consistency,software model checking
Data structure,Programming language,Sequential consistency,Shared memory,Concurrency,Computer science,Parallel computing,Boolean satisfiability problem,Memory ordering,Real-time computing,Memory model,Concurrent data structure
Conference
Volume
Issue
ISSN
42
6
0362-1340
Citations 
PageRank 
References 
81
3.72
34
Authors
3
Name
Order
Citations
PageRank
Sebastian Burckhardt172534.72
Rajeev Alur2172531413.65
Milo M. K. Martin32677125.22