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

Tests VarHandle methods which take effect of load load fence.

[1]

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 16595 ACCEPTABLE actor2 observe the variables before actor1 update
0.0, 1.39067116124321E-309 6283 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 66492 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 30944 ACCEPTABLE actor2 observe the variables before actor1 update
0.0, 1.39067116124321E-309 9159 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 1142867 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 2383 ACCEPTABLE actor2 observe the variables before actor1 update
0.0, 1.39067116124321E-309 709 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 1831578 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 5230 ACCEPTABLE actor2 observe the variables before actor1 update
0.0, 1.39067116124321E-309 2717 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 385533 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 105118 ACCEPTABLE actor2 observe the variables before actor1 update
0.0, 1.39067116124321E-309 22100 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 770562 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 269873 ACCEPTABLE actor2 observe the variables before actor1 update
0.0, 1.39067116124321E-309 49621 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 1536146 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 78679 ACCEPTABLE actor2 observe the variables before actor1 update
0.0, 1.39067116124321E-309 954 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 2129297 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 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 18119 ACCEPTABLE actor2 observe the variables before actor1 update
0.0, 1.39067116124321E-309 5062 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 917129 ACCEPTABLE actor2 observe the variables after actor1 update completely