[aarch64-port-dev ] Initial SVE trial in OpenJDK with ARMIE

Ningsheng Jian ningsheng.jian at linaro.org
Fri Mar 9 04:08:21 UTC 2018


Hi,

As Stuart mentioned in the last fireside chat, I had tried the ARM
Instruction Emulator (ARMIE [1]) with OpenJDK. Since the SVE hardware
is still not available, ARMIE is a good choice for early SVE
enablement work.

I've enabled some SVE instructions and use them in arraycopy stub
code. The webrev:

http://cr.openjdk.java.net/~njian/sve/copy-intrinsic.webrev0/

And ran the test case:

http://cr.openjdk.java.net/~njian/sve/ArrayCopyTest.java

in AArch64 hardware with:

$ armie -msve-vector-bits=1024 -s
~/jdk/master/build-release/images/jdk/bin/java -XX:+UseSVE
ArrayCopyTest

It works fine, and with "-s" option it can show which SVE instructions
have been executed.

With the jtreg patched [2], the initial SVE patch could also pass
jtreg tests with ARMIE.

Note: one issue I've met is, when running ARMIE and using java
ProcessBuilder to create new process, it will report
StackOverflowError. This is a limitation for current ARMIE and
enlarging the reaper process stack size could work around this.

[1] https://developer.arm.com/products/software-development-tools/hpc/arm-instruction-emulator
[2] http://cr.openjdk.java.net/~njian/sve/jtreg-armie-support.patch

Thanks,
Ningsheng


More information about the aarch64-port-dev mailing list