[RFR] jdk9.0.4+12 + functionality

Andrey Petushkov andrey.petushkov at gmail.com
Wed Jun 20 14:58:54 UTC 2018


Dear Ed,

In fact it looks like vast majority of the tests has failed because they do consider entities of the (non-volatile) long and double types as atomic, while JLS specifically provisions they are not! (and aarch32 port does not make any attempt to implement atomicity for non-volatile 64-bit data types). Tests do not have the necessary checks for partially observed results of long/double writes and hence fail. I’ve checked a few - the failed results all correspond to the case when only low or only high part of 64-bit of newly written value is observed, while the other part remains default (0)

There are indeed 2 real problems. The tests:
- o.o.j.t.coherence.varHandles.arrays.opaque.ByteTest and o.o.j.t.coherence.varHandles.fields.opaque.*Test have failed as if memory access coherence is really broken. will investigate
- o.o.j.t.acqrel.varHandles.byteArray.little.acqrel.ShortStringTest, o.o.j.t.acqrel.varHandles.byteArray.little.plain.IntBooleanTest have crashed the VM. I see that crash dump header mentions use G1 GC there. this might be the reason, we really have never tested it well (although regressions tests have passed successfully) and never have a customer who make benefit from using it. So it might be that support is indeed broken
- o.o.j.t.memeffects.basic.atomicupdaters.AtomicLongFieldUpdater.atomic_addAndGet_set_char fails in strange way, might be caused by crash of the VM on the previous test (at least similar to what typically happens in such case)
I’ll try to reproduce the above failures and dig into. At the moment my own jcstress run is still in the middle of somewhere, although been running for 2 days..

Regards,
Andrey

> On 19 Jun 2018, at 19:18, Andrey Petushkov <andrey.petushkov at gmail.com> wrote:
> 
> Hi Ed,
> 
>> On 18 Jun 2018, at 22:42, Edward Nevill <edward.nevill at gmail.com <mailto:edward.nevill at gmail.com>> wrote:
>> 
>> Hi Andrey,
>> 
>> I have updated and pushed your patches. I did the merge myself and then
>> pushed your C2+additional functionality patch as I wanted to preserve
>> the history which otherwise would have been lost.
>> 
>> The aarch32 jdk9u tree is now at
>> 
>> http://hg.openjdk.java.net/aarch32-port/jdk9u/ <http://hg.openjdk.java.net/aarch32-port/jdk9u/>
> Thank you so much!
>> 
>> I also reran jcstress on your jdk10 patch. I am still seeing 1626
>> failures.
>> 
>> I have uploaded the results to
>> 
>> http://www.camswl.com/jcstress-results-2018-06-17-20-37-09.bin.gz <http://www.camswl.com/jcstress-results-2018-06-17-20-37-09.bin.gz>
> Looking at that. Do you plan to create repos for jdk10 or want me to address stress test results first?
> 
> Thanks,
> Andrey
>> 
>> All the best,
>> Ed.
>> 
>> On Wed, 2018-06-13 at 13:33 +0300, Andrey Petushkov wrote:
>>> Thank you so much a try!
>>> In fact there are two synchronization bugs found and fixed during
>>> updating to Java 10. So could I ask you to check out the jdk10 webrev
>>> I’ve sent last week. Hopefully some of the problems should go away.
>>> Unfortunately I did not yet run jcstress myself, shame on me…
>>> 
>>> The people participated are Fedor Burdun <fedor.burdun at azulsystems.co <mailto:fedor.burdun at azulsystems.co>
>>> m> and myself, Andrey Petushkov <andrey.petushkov at gmail.com <mailto:andrey.petushkov at gmail.com>>
>>> 
> 



More information about the aarch32-port-dev mailing list