org.openjdk.jcstress.tests.fences.varHandles.StoreStoreFenceTest2.StoreStoreFenceLong

Tests VarHandle methods which take effect of store store fence.

[1]

JVM options: [-server, -XX:-TieredCompilation, -XX:+UnlockDiagnosticVMOptions, -XX:+StressLCM, -XX:+StressGCM] Iterations: 5 Time: 200

Observed state Occurrence Expectation Interpretation
-1, -1 2137109 ACCEPTABLE actor2 observe the variables after actor1 update completely
-1, 0 0 FORBIDDEN y won't be observed to be updated before var is updated
.*, -1 0 ACCEPTABLE_SPEC Non-atomic access detected, allowed by spec, if r1 is half-value, load var must get a full-value
0, -1 11118 ACCEPTABLE actor2 observe the variables after var is already updated but y hasn't yet
0, .* 0 ACCEPTABLE_SPEC Non-atomic access detected, allowed by spec, when load var in actor2 before storestore Fence in actor1
0, 0 113003 ACCEPTABLE actor2 observe the variables before actor1 update

JVM options: [-client, -XX:-TieredCompilation] Iterations: 5 Time: 200

Observed state Occurrence Expectation Interpretation
-1, -1 733502 ACCEPTABLE actor2 observe the variables after actor1 update completely
-1, 0 0 FORBIDDEN y won't be observed to be updated before var is updated
.*, -1 0 ACCEPTABLE_SPEC Non-atomic access detected, allowed by spec, if r1 is half-value, load var must get a full-value
0, -1 16766 ACCEPTABLE actor2 observe the variables after var is already updated but y hasn't yet
0, .* 0 ACCEPTABLE_SPEC Non-atomic access detected, allowed by spec, when load var in actor2 before storestore Fence in actor1
0, 0 29272 ACCEPTABLE actor2 observe the variables before actor1 update

JVM options: [-client] Iterations: 5 Time: 200

Observed state Occurrence Expectation Interpretation
-1, -1 577795 ACCEPTABLE actor2 observe the variables after actor1 update completely
-1, 0 0 FORBIDDEN y won't be observed to be updated before var is updated
.*, -1 0 ACCEPTABLE_SPEC Non-atomic access detected, allowed by spec, if r1 is half-value, load var must get a full-value
0, -1 3623 ACCEPTABLE actor2 observe the variables after var is already updated but y hasn't yet
0, .* 0 ACCEPTABLE_SPEC Non-atomic access detected, allowed by spec, when load var in actor2 before storestore Fence in actor1
0, 0 27222 ACCEPTABLE actor2 observe the variables before actor1 update

JVM options: [-Xint] Iterations: 5 Time: 200

Observed state Occurrence Expectation Interpretation
-1, -1 36883 ACCEPTABLE actor2 observe the variables after actor1 update completely
-1, 0 0 FORBIDDEN y won't be observed to be updated before var is updated
.*, -1 0 ACCEPTABLE_SPEC Non-atomic access detected, allowed by spec, if r1 is half-value, load var must get a full-value
0, -1 3963 ACCEPTABLE actor2 observe the variables after var is already updated but y hasn't yet
0, .* 0 ACCEPTABLE_SPEC Non-atomic access detected, allowed by spec, when load var in actor2 before storestore Fence in actor1
0, 0 71214 ACCEPTABLE actor2 observe the variables before actor1 update

JVM options: [-XX:TieredStopAtLevel=1] Iterations: 5 Time: 200

Observed state Occurrence Expectation Interpretation
-1, -1 742047 ACCEPTABLE actor2 observe the variables after actor1 update completely
-1, 0 0 FORBIDDEN y won't be observed to be updated before var is updated
.*, -1 0 ACCEPTABLE_SPEC Non-atomic access detected, allowed by spec, if r1 is half-value, load var must get a full-value
0, -1 1707 ACCEPTABLE actor2 observe the variables after var is already updated but y hasn't yet
0, .* 0 ACCEPTABLE_SPEC Non-atomic access detected, allowed by spec, when load var in actor2 before storestore Fence in actor1
0, 0 5346 ACCEPTABLE actor2 observe the variables before actor1 update

JVM options: [-server, -XX:+UnlockDiagnosticVMOptions, -XX:+StressLCM, -XX:+StressGCM] Iterations: 5 Time: 200

Observed state Occurrence Expectation Interpretation
-1, -1 993273 ACCEPTABLE actor2 observe the variables after actor1 update completely
-1, 0 0 FORBIDDEN y won't be observed to be updated before var is updated
.*, -1 0 ACCEPTABLE_SPEC Non-atomic access detected, allowed by spec, if r1 is half-value, load var must get a full-value
0, -1 695 ACCEPTABLE actor2 observe the variables after var is already updated but y hasn't yet
0, .* 0 ACCEPTABLE_SPEC Non-atomic access detected, allowed by spec, when load var in actor2 before storestore Fence in actor1
0, 0 1132 ACCEPTABLE actor2 observe the variables before actor1 update

JVM options: [-server] Iterations: 5 Time: 200

Observed state Occurrence Expectation Interpretation
-1, -1 987714 ACCEPTABLE actor2 observe the variables after actor1 update completely
-1, 0 0 FORBIDDEN y won't be observed to be updated before var is updated
.*, -1 0 ACCEPTABLE_SPEC Non-atomic access detected, allowed by spec, if r1 is half-value, load var must get a full-value
0, -1 1197 ACCEPTABLE actor2 observe the variables after var is already updated but y hasn't yet
0, .* 0 ACCEPTABLE_SPEC Non-atomic access detected, allowed by spec, when load var in actor2 before storestore Fence in actor1
0, 0 3469 ACCEPTABLE actor2 observe the variables before actor1 update

JVM options: [-server, -XX:-TieredCompilation] Iterations: 5 Time: 200

Observed state Occurrence Expectation Interpretation
-1, -1 475125 ACCEPTABLE actor2 observe the variables after actor1 update completely
-1, 0 0 FORBIDDEN y won't be observed to be updated before var is updated
.*, -1 0 ACCEPTABLE_SPEC Non-atomic access detected, allowed by spec, if r1 is half-value, load var must get a full-value
0, -1 9083 ACCEPTABLE actor2 observe the variables after var is already updated but y hasn't yet
0, .* 0 ACCEPTABLE_SPEC Non-atomic access detected, allowed by spec, when load var in actor2 before storestore Fence in actor1
0, 0 22272 ACCEPTABLE actor2 observe the variables before actor1 update