org.openjdk.jcstress.tests.fences.varHandles.LoadLoadFenceTest.FullFenceDouble

Tests VarHandle methods which take effect of load load 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 fullFence in actor1
0.0, 0.0 70540 ACCEPTABLE actor2 observe the variables before actor1 update
0.0, 1.39067116124321E-309 30565 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 1623725 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 fullFence in actor1
0.0, 0.0 7872 ACCEPTABLE actor2 observe the variables before actor1 update
0.0, 1.39067116124321E-309 3634 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 1243404 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 fullFence in actor1
0.0, 0.0 7386 ACCEPTABLE actor2 observe the variables before actor1 update
0.0, 1.39067116124321E-309 4808 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 3126496 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 fullFence in actor1
0.0, 0.0 13326 ACCEPTABLE actor2 observe the variables before actor1 update
0.0, 1.39067116124321E-309 9909 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 260865 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 fullFence in actor1
0.0, 0.0 63607 ACCEPTABLE actor2 observe the variables before actor1 update
0.0, 1.39067116124321E-309 3290 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 261193 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 fullFence in actor1
0.0, 0.0 9638 ACCEPTABLE actor2 observe the variables before actor1 update
0.0, 1.39067116124321E-309 7859 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 46433 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 fullFence in actor1
0.0, 0.0 49963 ACCEPTABLE actor2 observe the variables before actor1 update
0.0, 1.39067116124321E-309 24011 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 882986 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 fullFence in actor1
0.0, 0.0 29096 ACCEPTABLE actor2 observe the variables before actor1 update
0.0, 1.39067116124321E-309 10240 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 519334 ACCEPTABLE actor2 observe the variables after actor1 update completely