[oe] Openjdk shark and cacao VMs not working - shark fixed

Xerxes Rånby xerxes at zafena.se
Wed Jul 21 11:41:23 UTC 2010


Hi Koen!

I have updated the llvm2.7 package to fix the shark
UNREACHABLE executed at ARMCodeEmitter.cpp:554! error
http://cgit.openembedded.org/cgit.cgi/openembedded/commit/?id=d1dcd08e4ec0b65aaaef149bace47da16acf7626

By using those fixes i was able to pass your Linpack testcase:

xerxes at overo:/usr/src/openembedded/shark-test/testcases$
../21jul-2010/j2sdk-image/bin/java -shark Linpack
Mflops/s: 1.063  Time: 0.65 secs  Norm Res: 1.43  Precision:
2.220446049250313E-16

It worked but it looks a bit slow.. I checked why.
it seems Shark are still JITing when the test exits.

I tested to modify the Linpack testcase to run it several times in a row.
by changing the Linpack main to:

  public static void main(String[] args)
  {
    for(int i=0;i<100;i++){
      Linpack l = new Linpack();
      l.run_benchmark();
    }
  }

Now it looks much better:

xerxes at overo:/usr/src/openembedded/shark-test/testcases$
../21jul-2010/j2sdk-image/bin/java -shark Linpack
Mflops/s: 1.068  Time: 0.64 secs  Norm Res: 1.43  Precision:
2.220446049250313E-16
Mflops/s: 14.306  Time: 0.05 secs  Norm Res: 1.43  Precision:
2.220446049250313E-16
Mflops/s: 14.014  Time: 0.05 secs  Norm Res: 1.43  Precision:
2.220446049250313E-16
Mflops/s: 14.306  Time: 0.05 secs  Norm Res: 1.43  Precision:
2.220446049250313E-16
Mflops/s: 14.306  Time: 0.05 secs  Norm Res: 1.43  Precision:
2.220446049250313E-16
LLVM ERROR: ARMv6t2 JIT is not yet supported.

But as you can see I have hited a new LLVM ERROR, and this time because
we are trying to use the thumb2 jit on armv7 hardware.

I have updated the llvm2.7 package once again by backporting more fixes
from the llvm2.8svn branch
http://cgit.openembedded.org/cgit.cgi/openembedded/commit/?id=de16a3d10308c81c7e40886bbe0846604eebdf77

And now when using llvm2.7-2.7-r8 I am able to run the Linpack testcase
for any amount of iterations:

xerxes at overo:/usr/src/openembedded/shark-test/testcases$
../21jul-2010/j2sdk-image/bin/java -shark Linpack
Mflops/s: 1.066  Time: 0.64 secs  Norm Res: 1.43  Precision:
2.220446049250313E-16
Mflops/s: 14.306  Time: 0.05 secs  Norm Res: 1.43  Precision:
2.220446049250313E-16
Mflops/s: 14.014  Time: 0.05 secs  Norm Res: 1.43  Precision:
2.220446049250313E-16
Mflops/s: 14.306  Time: 0.05 secs  Norm Res: 1.43  Precision:
2.220446049250313E-16
Mflops/s: 14.306  Time: 0.05 secs  Norm Res: 1.43  Precision:
2.220446049250313E-16
... about 30 iterations later
Mflops/s: 17.167  Time: 0.04 secs  Norm Res: 1.43  Precision:
2.220446049250313E-16
Mflops/s: 17.607  Time: 0.04 secs  Norm Res: 1.43  Precision:
2.220446049250313E-16
Mflops/s: 17.607  Time: 0.04 secs  Norm Res: 1.43  Precision:
2.220446049250313E-16
...

I am quite happy with those results.
Once we get LLVM and Shark stable then we can drop the Assertions in
LLVM and that will make Shark JIT faster and hopefully get it warm fast
enough to generate good scores for the first iteration of the Linpack
benchmark.

Please report if you find any new Shark issues.

Cheers, and have a great day!
Xerxes

On 2010-07-19 11:37, Koen Kooi wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Hi,
>
> I built openjdk completely from scratch and installed it:
>
> opkg install openjdk-6-common openjdk-6-demo openjdk-6-java
> openjdk-6-jdk openjdk-6-jre
>
> opkg install openjdk-6-vm-shark openjdk-6-vm-cacao
>
> That needs to be done in 2 opkg commands since -cacao and -shark edit a
> jvm.cfg in their postinst which isn't in their Depends: line. Trivial to
> fix, need to sit down and see in which package it resides.
>
> So:
>
> root at beagleboard-C4:~# java -zero Linpack # [1]
> Mflops/s: 9.537  Time: 0.07 secs  Norm Res: 1.43  Precision:
> 2.220446049250313E-16
>
> So far, so good. Better than the 3 Mflops jamvm+classpath gets, but not
> as nice as the 16Mflops cacao+classpath can do.
>
> So lets try some other VMs:
>
> root at beagleboard-C4:~# java -shark Linpack
> ARMCodeEmitter::emitPseudoInstruction
> UNREACHABLE executed at
> /OE/angstrom-dev/work/armv7a-angstrom-linux-gnueabi/llvm2.7-2.7-r6/llvm-2.7/lib/Target/ARM/ARMCodeEmitter.cpp:554!
> Stack dump:
> 0.      Running pass 'ARM Machine Code Emitter' on function
> '@"Linpack::daxpy"'
> Aborted
>
> OK, Xerxes blogged about debugging such issues, but the summer intern is
> too busy with other stuff currently.
>   




> root at beagleboard-C4:~# java -cacao Linpack
> java: avl.c:348: avl_find: Assertion `tree' failed.
> Aborted
>
> No idea on that.
>
> Do the java mages have some idea on how to get shark and cacao working well?
>
> regards,
>
> Koen
>
> [1] http://www.netlib.org/benchmark/linpackjava/LinpackJava.zip compiled
> with javac on osx
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.5 (Darwin)
>
> iD8DBQFMRBzPMkyGM64RGpERAiEJAJ4yeJVBcvuwHzVbS++Zt5iI9Rp11QCgm3aB
> Xqj79L9E1QpIz19c0QSxh6o=
> =OBoo
> -----END PGP SIGNATURE-----
>
>
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel at lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel
>   





More information about the Openembedded-devel mailing list