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

Tests VarHandle methods which take effect of store store fence.

[1]

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 x must get a full-value
0.0, .* 0 ACCEPTABLE_SPEC Non-atomic access detected, allowed by spec, when load x in actor2 before storestore Fence in actor1
0.0, 0.0 2175 ACCEPTABLE actor2 observe the variables before actor1 update
0.0, 1.39067116124321E-309 522 ACCEPTABLE actor2 observe the variables after x is already updated but var hasn't yet
1.39067116124321E-309, 0.0 0 FORBIDDEN var won't be observed to be updated before x is updated
1.39067116124321E-309, 1.39067116124321E-309 2193493 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 x must get a full-value
0.0, .* 0 ACCEPTABLE_SPEC Non-atomic access detected, allowed by spec, when load x in actor2 before storestore Fence in actor1
0.0, 0.0 2895 ACCEPTABLE actor2 observe the variables before actor1 update
0.0, 1.39067116124321E-309 2431 ACCEPTABLE actor2 observe the variables after x is already updated but var hasn't yet
1.39067116124321E-309, 0.0 0 FORBIDDEN var won't be observed to be updated before x is updated
1.39067116124321E-309, 1.39067116124321E-309 895924 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 x must get a full-value
0.0, .* 0 ACCEPTABLE_SPEC Non-atomic access detected, allowed by spec, when load x in actor2 before storestore Fence in actor1
0.0, 0.0 1846 ACCEPTABLE actor2 observe the variables before actor1 update
0.0, 1.39067116124321E-309 968 ACCEPTABLE actor2 observe the variables after x is already updated but var hasn't yet
1.39067116124321E-309, 0.0 0 FORBIDDEN var won't be observed to be updated before x is updated
1.39067116124321E-309, 1.39067116124321E-309 1346266 ACCEPTABLE actor2 observe the variables after actor1 update completely

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 x must get a full-value
0.0, .* 0 ACCEPTABLE_SPEC Non-atomic access detected, allowed by spec, when load x in actor2 before storestore Fence in actor1
0.0, 0.0 33366 ACCEPTABLE actor2 observe the variables before actor1 update
0.0, 1.39067116124321E-309 25137 ACCEPTABLE actor2 observe the variables after x is already updated but var hasn't yet
1.39067116124321E-309, 0.0 0 FORBIDDEN var won't be observed to be updated before x is updated
1.39067116124321E-309, 1.39067116124321E-309 348207 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 x must get a full-value
0.0, .* 0 ACCEPTABLE_SPEC Non-atomic access detected, allowed by spec, when load x in actor2 before storestore Fence in actor1
0.0, 0.0 9632 ACCEPTABLE actor2 observe the variables before actor1 update
0.0, 1.39067116124321E-309 2176 ACCEPTABLE actor2 observe the variables after x is already updated but var hasn't yet
1.39067116124321E-309, 0.0 0 FORBIDDEN var won't be observed to be updated before x is updated
1.39067116124321E-309, 1.39067116124321E-309 174022 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 x must get a full-value
0.0, .* 0 ACCEPTABLE_SPEC Non-atomic access detected, allowed by spec, when load x in actor2 before storestore Fence in actor1
0.0, 0.0 2619 ACCEPTABLE actor2 observe the variables before actor1 update
0.0, 1.39067116124321E-309 2293 ACCEPTABLE actor2 observe the variables after x is already updated but var hasn't yet
1.39067116124321E-309, 0.0 0 FORBIDDEN var won't be observed to be updated before x is updated
1.39067116124321E-309, 1.39067116124321E-309 16218 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 x must get a full-value
0.0, .* 0 ACCEPTABLE_SPEC Non-atomic access detected, allowed by spec, when load x in actor2 before storestore Fence in actor1
0.0, 0.0 85507 ACCEPTABLE actor2 observe the variables before actor1 update
0.0, 1.39067116124321E-309 64012 ACCEPTABLE actor2 observe the variables after x is already updated but var hasn't yet
1.39067116124321E-309, 0.0 0 FORBIDDEN var won't be observed to be updated before x is updated
1.39067116124321E-309, 1.39067116124321E-309 1064971 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 x must get a full-value
0.0, .* 0 ACCEPTABLE_SPEC Non-atomic access detected, allowed by spec, when load x in actor2 before storestore Fence in actor1
0.0, 0.0 119753 ACCEPTABLE actor2 observe the variables before actor1 update
0.0, 1.39067116124321E-309 52564 ACCEPTABLE actor2 observe the variables after x is already updated but var hasn't yet
1.39067116124321E-309, 0.0 0 FORBIDDEN var won't be observed to be updated before x is updated
1.39067116124321E-309, 1.39067116124321E-309 988783 ACCEPTABLE actor2 observe the variables after actor1 update completely