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

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 1313682 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 49347 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 75771 ACCEPTABLE actor2 observe the variables before actor1 update

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

Observed state Occurrence Expectation Interpretation
-1, -1 589407 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 33320 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 79763 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 280726 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 12918 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 23876 ACCEPTABLE actor2 observe the variables before actor1 update

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

Observed state Occurrence Expectation Interpretation
-1, -1 38108 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 4382 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 6170 ACCEPTABLE actor2 observe the variables before actor1 update

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

Observed state Occurrence Expectation Interpretation
-1, -1 634521 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 4507 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 5572 ACCEPTABLE actor2 observe the variables before actor1 update

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

Observed state Occurrence Expectation Interpretation
-1, -1 1373489 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 7193 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 19228 ACCEPTABLE actor2 observe the variables before actor1 update

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

Observed state Occurrence Expectation Interpretation
-1, -1 3348395 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 53278 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 117517 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 3142397 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 3643 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 7660 ACCEPTABLE actor2 observe the variables before actor1 update