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

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.39067116124321E-309 0 ACCEPTABLE_SPEC Non-atomic access detected, allowed by spec, if r1 is half-value, load var must get a full-value
0.0, .* 0 ACCEPTABLE_SPEC Non-atomic access detected, allowed by spec, when load var in actor2 before storestore Fence in actor1
0.0, 0.0 32682 ACCEPTABLE actor2 observe the variables before actor1 update
0.0, 1.39067116124321E-309 13069 ACCEPTABLE actor2 observe the variables after var is already updated but y hasn't yet
1.39067116124321E-309, 0.0 0 FORBIDDEN y won't be observed to be updated before var is updated
1.39067116124321E-309, 1.39067116124321E-309 805579 ACCEPTABLE actor2 observe the variables after actor1 update completely

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

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

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

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

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

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

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

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

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

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

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

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

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

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