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

Tests VarHandle methods which take effect of load load fence.

[1]

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

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

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

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

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

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

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

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

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

Observed state Occurrence Expectation Interpretation
-1, -1 2038929 ACCEPTABLE actor2 observe the variables after actor1 update completely
-1, 0 0 FORBIDDEN var won't be observed to be updated before x is updated
.*, -1 0 ACCEPTABLE_SPEC Non-atomic access detected, allowed by spec, if r1 is half-value, load x must get a full-value
0, -1 40431 ACCEPTABLE actor2 observe the variables after x is already updated but var hasn't yet
0, .* 0 ACCEPTABLE_SPEC Non-atomic access detected, allowed by spec, when load x in actor2 before fullFence in actor1
0, 0 51290 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 1579709 ACCEPTABLE actor2 observe the variables after actor1 update completely
-1, 0 0 FORBIDDEN var won't be observed to be updated before x is updated
.*, -1 0 ACCEPTABLE_SPEC Non-atomic access detected, allowed by spec, if r1 is half-value, load x must get a full-value
0, -1 1814 ACCEPTABLE actor2 observe the variables after x is already updated but var hasn't yet
0, .* 0 ACCEPTABLE_SPEC Non-atomic access detected, allowed by spec, when load x in actor2 before fullFence in actor1
0, 0 12277 ACCEPTABLE actor2 observe the variables before actor1 update

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

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

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

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