Most tests in our test base are variants of the 20 classical tests built from SC violations up to 3 threads. Those tests build on the critical cycles of Shasha and Snir.
Model | Hardware | CoreI5 | CoreI5-dual | CoreI7 | Chianti | Limoux | Teraram | Estephe | Barsac | Zdani | |
2+2W+WB+WB | Forbid | Ok, 0/3.7G | Ok, 0/778M | Ok, 0/204M | Ok, 0/432M | Ok, 0/863M | Ok, 0/408M | Ok, 0/553M | Ok, 0/66M | Ok, 0/173M | Ok, 0/267M |
LB+WB+WB | Forbid | Ok, 0/3.7G | Ok, 0/778M | Ok, 0/204M | Ok, 0/432M | Ok, 0/863M | Ok, 0/408M | Ok, 0/553M | Ok, 0/66M | Ok, 0/173M | Ok, 0/267M |
MP+WB+WB | Forbid | Ok, 0/3.7G | Ok, 0/778M | Ok, 0/204M | Ok, 0/432M | Ok, 0/863M | Ok, 0/408M | Ok, 0/553M | Ok, 0/66M | Ok, 0/173M | Ok, 0/267M |
R+WB+WB | Allow | Ok, 30M/4.3G | Ok, 3.3M/890M | Ok, 2.5M/300M | Ok, 2.3M/560M | Ok, 11M/991M | Ok, 6.3M/504M | Ok, 2.3M/553M | Ok, 51k/66M | Ok, 947k/173M | Ok, 754k/267M |
S+WB+WB | Forbid | Ok, 0/3.7G | Ok, 0/778M | Ok, 0/204M | Ok, 0/428M | Ok, 0/863M | Ok, 0/408M | Ok, 0/553M | Ok, 0/66M | Ok, 0/173M | Ok, 0/227M |
SB+WB+WB | Allow | Ok, 165M/3.8G | Ok, 9.4M/778M | Ok, 7.5M/236M | Ok, 4.7M/432M | Ok, 106M/927M | Ok, 14M/408M | Ok, 13M/553M | Ok, 347k/66M | Ok, 4.5M/173M | Ok, 5.2M/227M |
WRC+WB+WB | Forbid | Ok, 0/1.8G | Ok, 0/336M | Ok, 0/82M | Ok, 0/124M | Ok, 0/447M | Ok, 0/232M | Ok, 0/318M | Ok, 0/33M | Ok, 0/115M | Ok, 0/161M |
WRR+2W+WB+WB | Forbid | Ok, 0/1.8G | Ok, 0/336M | Ok, 0/82M | Ok, 0/124M | Ok, 0/447M | Ok, 0/232M | Ok, 0/318M | Ok, 0/33M | Ok, 0/115M | Ok, 0/161M |
WRW+2W+WB+WB | Forbid | Ok, 0/1.8G | Ok, 0/336M | Ok, 0/82M | Ok, 0/124M | Ok, 0/447M | Ok, 0/232M | Ok, 0/318M | Ok, 0/33M | Ok, 0/115M | Ok, 0/161M |
WRW+WR+WB+WB | Allow | Ok, 144k/1.8G | Ok, 8.0k/336M | Ok, 6.2k/82M | Ok, 2.4k/124M | Ok, 18k/447M | Ok, 13k/232M | Ok, 63k/318M | Ok, 430/33M | Ok, 13k/115M | Ok, 21k/161M |
3.2W+WB+WB+WB | Forbid | Ok, 0/2.0G | Ok, 0/336M | Ok, 0/102M | Ok, 0/164M | Ok, 0/447M | Ok, 0/272M | Ok, 0/318M | Ok, 0/33M | Ok, 0/115M | Ok, 0/185M |
3.LB+WB+WB+WB | Forbid | Ok, 0/2.0G | Ok, 0/336M | Ok, 0/102M | Ok, 0/164M | Ok, 0/447M | Ok, 0/272M | Ok, 0/318M | Ok, 0/33M | Ok, 0/115M | Ok, 0/185M |
3.SB+WB+WB+WB | Allow | Ok, 33M/2.0G | Ok, 1.4M/336M | Ok, 1.0M/118M | Ok, 910k/164M | Ok, 26M/479M | Ok, 1.4M/272M | Ok, 1.4M/318M | Ok, 10k/33M | Ok, 525k/115M | Ok, 871k/185M |
ISA2+WB+WB+WB | Forbid | Ok, 0/2.0G | Ok, 0/336M | Ok, 0/102M | Ok, 0/164M | Ok, 0/447M | Ok, 0/272M | Ok, 0/318M | Ok, 0/33M | Ok, 0/115M | Ok, 0/185M |
Z6.0+WB+WB+WB | Allow | Ok, 64k/2.2G | Ok, 2.2k/392M | Ok, 289/150M | Ok, 2.1k/228M | Ok, 3.6k/511M | Ok, 6.9k/336M | Ok, 30k/318M | Ok, 10/33M | Ok, 3.8k/115M | Ok, 15k/161M |
Z6.1+WB+WB+WB | Forbid | Ok, 0/1.9G | Ok, 0/336M | Ok, 0/102M | Ok, 0/164M | Ok, 0/447M | Ok, 0/272M | Ok, 0/318M | Ok, 0/33M | Ok, 0/115M | Ok, 0/161M |
Z6.2+WB+WB+WB | Forbid | Ok, 0/1.9G | Ok, 0/336M | Ok, 0/102M | Ok, 0/164M | Ok, 0/447M | Ok, 0/272M | Ok, 0/318M | Ok, 0/33M | Ok, 0/115M | Ok, 0/161M |
Z6.3+WB+WB+WB | Forbid | Ok, 0/1.9G | Ok, 0/336M | Ok, 0/102M | Ok, 0/164M | Ok, 0/447M | Ok, 0/272M | Ok, 0/318M | Ok, 0/33M | Ok, 0/115M | Ok, 0/161M |
Z6.4+WB+WB+WB | Allow | Ok, 6.9M/2.2G | Ok, 495k/392M | Ok, 1.2M/150M | Ok, 634k/228M | Ok, 3.4M/511M | Ok, 393k/336M | Ok, 263k/318M | Ok, 2.5k/33M | Ok, 116k/115M | Ok, 370k/161M |
Z6.5+WB+WB+WB | Allow | Ok, 208k/2.2G | Ok, 14k/392M | Ok, 10k/150M | Ok, 12k/228M | Ok, 69k/511M | Ok, 39k/336M | Ok, 47k/318M | Ok, 25/33M | Ok, 6.8k/115M | Ok, 10k/161M |
Some of our tests derive from other cycles: they basically are variations on the SB, MP and R tests above, plus one isolated write. By transitivity of the modification order those tests are redundant when considered as characterisations of SC violations. Nevertheless, they remain useful for hardware experiments, where varying testing context may prove beneficial.
Model | Hardware | CoreI5 | CoreI5-dual | CoreI7 | Chianti | Limoux | Teraram | Estephe | Barsac | Zdani | |
W+WR+WR+WB+WB | Allow | Ok, 19M/1.8G | Ok, 1.3M/336M | Ok, 555k/82M | Ok, 574k/124M | Ok, 13M/447M | Ok, 964k/232M | Ok, 1.3M/318M | Ok, 10k/33M | Ok, 309k/115M | Ok, 757k/161M |
W+WW+RR+WB+WB | Forbid | Ok, 0/1.8G | Ok, 0/336M | Ok, 0/82M | Ok, 0/124M | Ok, 0/447M | Ok, 0/232M | Ok, 0/318M | Ok, 0/33M | Ok, 0/115M | Ok, 0/161M |
W+WW+WR+WB+WB | Allow | Ok, 436k/1.8G | Ok, 16k/336M | Ok, 41k/82M | Ok, 4.9k/124M | Ok, 175k/447M | Ok, 47k/232M | Ok, 114k/318M | Ok, 360/33M | Ok, 14k/115M | Ok, 23k/161M |
Finally, tests that operate on a single variable are also part of our test base, as well as a few tests for testing the fence effect of the (locked) compare-exchange instruction.
Each test has run at least 6 × 108 times (more than 2.7 109 times on average).
Tested machines are:
The older chianti does not have access to the WT (Write-Through) memory type and only the most recent coreI5, coreI7, estephe and zdani implement the clflushopt instruction.