| | |
Summary: Generating Litmus Tests for Contrasting
Memory Consistency Models
Sela Mador-Haim, Rajeev Alur, and Milo M.K. Martin
University of Pennsylvania
Abstract. Well-defined memory consistency models are necessary for
writing correct parallel software. Developing and understanding formal
specifications of hardware memory models is a challenge due to the sub-
tle differences in allowed reorderings and different specification styles.
To facilitate exploration of memory model specifications, we have devel-
oped a technique for systematically comparing hardware memory models
specified using both operational and axiomatic styles. Given two spec-
ifications, our approach generates all possible multi-threaded programs
up to a specified bound, and for each such program, checks if one of
the models can lead to an observable behavior not possible in the other
model. When the models differs, the tool finds a minimal "litmus test"
program that demonstrates the difference. A number of optimizations
reduce the number of programs that need to be examined. Our pro-
totype implementation has successfully compared both axiomatic and
operational specifications of six different hardware memory models. We
describe two case studies: (1) development of a non-store atomic vari-
|