Contents
Part I Running tests with
litmus
1 A tour of
litmus
1.1 A simple run
1.2 Cross compilation
1.3 Running several tests at once
2 Controlling test parameters
2.1 Architecture of tests
2.2 Affinity
2.2.1 Introduction to affinity
2.2.2 Study of affinity
2.2.3 Advanced control
2.3 Controlling executable files
3 Usage of
litmus
Part II Generating tests
4 Preamble
4.1 Relaxation of Sequential Consistency
4.2 Introduction to candidate relaxations
4.3 More candidate relaxations
4.4 Summary of simple candidate relaxations
4.4.1 Communication candidate relaxations
4.4.2 Program order candidate relaxations
4.4.3 Fence candidate relaxations
5 Testing candidate relaxations with
diy
5.1 Principle
5.2 Testing x86
6 Additional relaxations
6.1 Intra-processor dependencies
6.2 Composite relaxations and cumulativity
7 Identifying coherence orders with observers
7.1 Simple observers
7.2 More observers
7.3 Three stores or more
8 Command usage
8.1 Usage of
diyone
8.2 Usage of
diy
8.3 Usage of
readRelax
Part III Automating the testing process
9 Preamble
10 A tour of
dont
10.1 Checking conformance
10.2 Checking non-conformance
10.3 Automatically exploring the memory model exhibited by a machine
11 Usage of
dont
11.1 Command-line options
11.2 Configuration files