Previous Up Next

Test base and hardware description

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.

There are 20 such tests
 ModelHardwareCoreI5CoreI5-dualCoreI7ChiantiLimouxTeraramEstepheBarsacZdani
2+2W+WB+WBForbidOk, 0/3.7GOk, 0/778MOk, 0/204MOk, 0/432MOk, 0/863MOk, 0/408MOk, 0/553MOk, 0/66MOk, 0/173MOk, 0/267M
LB+WB+WBForbidOk, 0/3.7GOk, 0/778MOk, 0/204MOk, 0/432MOk, 0/863MOk, 0/408MOk, 0/553MOk, 0/66MOk, 0/173MOk, 0/267M
MP+WB+WBForbidOk, 0/3.7GOk, 0/778MOk, 0/204MOk, 0/432MOk, 0/863MOk, 0/408MOk, 0/553MOk, 0/66MOk, 0/173MOk, 0/267M
R+WB+WBAllowOk, 30M/4.3GOk, 3.3M/890MOk, 2.5M/300MOk, 2.3M/560MOk, 11M/991MOk, 6.3M/504MOk, 2.3M/553MOk, 51k/66MOk, 947k/173MOk, 754k/267M
S+WB+WBForbidOk, 0/3.7GOk, 0/778MOk, 0/204MOk, 0/428MOk, 0/863MOk, 0/408MOk, 0/553MOk, 0/66MOk, 0/173MOk, 0/227M
SB+WB+WBAllowOk, 165M/3.8GOk, 9.4M/778MOk, 7.5M/236MOk, 4.7M/432MOk, 106M/927MOk, 14M/408MOk, 13M/553MOk, 347k/66MOk, 4.5M/173MOk, 5.2M/227M
WRC+WB+WBForbidOk, 0/1.8GOk, 0/336MOk, 0/82MOk, 0/124MOk, 0/447MOk, 0/232MOk, 0/318MOk, 0/33MOk, 0/115MOk, 0/161M
WRR+2W+WB+WBForbidOk, 0/1.8GOk, 0/336MOk, 0/82MOk, 0/124MOk, 0/447MOk, 0/232MOk, 0/318MOk, 0/33MOk, 0/115MOk, 0/161M
WRW+2W+WB+WBForbidOk, 0/1.8GOk, 0/336MOk, 0/82MOk, 0/124MOk, 0/447MOk, 0/232MOk, 0/318MOk, 0/33MOk, 0/115MOk, 0/161M
WRW+WR+WB+WBAllowOk, 144k/1.8GOk, 8.0k/336MOk, 6.2k/82MOk, 2.4k/124MOk, 18k/447MOk, 13k/232MOk, 63k/318MOk, 430/33MOk, 13k/115MOk, 21k/161M
3.2W+WB+WB+WBForbidOk, 0/2.0GOk, 0/336MOk, 0/102MOk, 0/164MOk, 0/447MOk, 0/272MOk, 0/318MOk, 0/33MOk, 0/115MOk, 0/185M
3.LB+WB+WB+WBForbidOk, 0/2.0GOk, 0/336MOk, 0/102MOk, 0/164MOk, 0/447MOk, 0/272MOk, 0/318MOk, 0/33MOk, 0/115MOk, 0/185M
3.SB+WB+WB+WBAllowOk, 33M/2.0GOk, 1.4M/336MOk, 1.0M/118MOk, 910k/164MOk, 26M/479MOk, 1.4M/272MOk, 1.4M/318MOk, 10k/33MOk, 525k/115MOk, 871k/185M
ISA2+WB+WB+WBForbidOk, 0/2.0GOk, 0/336MOk, 0/102MOk, 0/164MOk, 0/447MOk, 0/272MOk, 0/318MOk, 0/33MOk, 0/115MOk, 0/185M
Z6.0+WB+WB+WBAllowOk, 64k/2.2GOk, 2.2k/392MOk, 289/150MOk, 2.1k/228MOk, 3.6k/511MOk, 6.9k/336MOk, 30k/318MOk, 10/33MOk, 3.8k/115MOk, 15k/161M
Z6.1+WB+WB+WBForbidOk, 0/1.9GOk, 0/336MOk, 0/102MOk, 0/164MOk, 0/447MOk, 0/272MOk, 0/318MOk, 0/33MOk, 0/115MOk, 0/161M
Z6.2+WB+WB+WBForbidOk, 0/1.9GOk, 0/336MOk, 0/102MOk, 0/164MOk, 0/447MOk, 0/272MOk, 0/318MOk, 0/33MOk, 0/115MOk, 0/161M
Z6.3+WB+WB+WBForbidOk, 0/1.9GOk, 0/336MOk, 0/102MOk, 0/164MOk, 0/447MOk, 0/272MOk, 0/318MOk, 0/33MOk, 0/115MOk, 0/161M
Z6.4+WB+WB+WBAllowOk, 6.9M/2.2GOk, 495k/392MOk, 1.2M/150MOk, 634k/228MOk, 3.4M/511MOk, 393k/336MOk, 263k/318MOk, 2.5k/33MOk, 116k/115MOk, 370k/161M
Z6.5+WB+WB+WBAllowOk, 208k/2.2GOk, 14k/392MOk, 10k/150MOk, 12k/228MOk, 69k/511MOk, 39k/336MOk, 47k/318MOk, 25/33MOk, 6.8k/115MOk, 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.

There are 3 such tests
 ModelHardwareCoreI5CoreI5-dualCoreI7ChiantiLimouxTeraramEstepheBarsacZdani
W+WR+WR+WB+WBAllowOk, 19M/1.8GOk, 1.3M/336MOk, 555k/82MOk, 574k/124MOk, 13M/447MOk, 964k/232MOk, 1.3M/318MOk, 10k/33MOk, 309k/115MOk, 757k/161M
W+WW+RR+WB+WBForbidOk, 0/1.8GOk, 0/336MOk, 0/82MOk, 0/124MOk, 0/447MOk, 0/232MOk, 0/318MOk, 0/33MOk, 0/115MOk, 0/161M
W+WW+WR+WB+WBAllowOk, 436k/1.8GOk, 16k/336MOk, 41k/82MOk, 4.9k/124MOk, 175k/447MOk, 47k/232MOk, 114k/318MOk, 360/33MOk, 14k/115MOk, 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.


Previous Up Next