Problems running JMH with Avian

87 views
Skip to first unread message

Richard Kolb

unread,
Sep 16, 2014, 2:09:15 AM9/16/14
to av...@googlegroups.com
Hello,

I'm having problems running JMH latest SNAPSHOT on a Ubuntu 14.04 ARM with Avian jvm-7-avian-jre. 0.7+20140401-1
(The JMH code is at the bottom)

Does anyone have some clues ?

It runs fine in IcedTea Zero and IcedTea JamVM using the -zero and -jamvm options.


Thanks,
Richard.


ubuntu@ubuntu:~/src/jmh/jmh-samples$ java -jar target/benchmarks.jar -v EXTRA -jvmArgs -avian -i 1 org.openjdk.jmh.samples.JMHSample_11_Loops.measureRight

# VM invoker: /usr/lib/jvm/java-7-openjdk-armhf/jre/bin/java
# VM options: -avian
# Warmup: 20 iterations, 1 s each
# Measurement: 1 iterations, 1 s each
# Timeout: 10 min per iteration
# Threads: 1 thread, will synchronize iterations
# Benchmark mode: Average time, time/op
# Benchmark: org.openjdk.jmh.samples.JMHSample_11_Loops.measureRight

Forking 10 times using command: [/usr/lib/jvm/java-7-openjdk-armhf/jre/bin/java, -avian, -XX:CompileCommandFile=/tmp/jmh7265095391005671506compilecommand, -cp, target/benchmarks.jar, org.openjdk.jmh.runner.ForkedMain, 127.0.0.1, 50488]
# Run progress: 0.00% complete, ETA 00:03:30
# Fork: 1 of 10
# Warmup Iteration   1: <binary link had failed, forked VM corrupted the stream? Use EXTRA verbose to print exception>
java.io.EOFException
        at java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2598)
        at java.io.ObjectInputStream.skipCustomData(ObjectInputStream.java:1944)
        at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1620)
        at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1517)
        at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1663)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1344)
        at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1990)
        at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1915)
        at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1798)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
        at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1990)
        at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1915)
        at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1798)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)
        at java.util.ArrayList.readObject(ArrayList.java:771)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1017)
        at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1893)
        at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1798)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
        at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1990)
        at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1915)
        at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1798)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
        at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1706)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1344)
        at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1990)
        at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1915)
        at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1798)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)
        at org.openjdk.jmh.runner.link.BinaryLinkServer$Handler.run(BinaryLinkServer.java:254)

<forked VM failed with exit code 134>
<stdout last='20 lines'>
</stdout>
<stderr last='20 lines'>
</stderr>

# Run complete. Total time: 00:00:00

http://hg.openjdk.java.net/code-tools/jmh/file/2856725c3a81/jmh-core/src/main/java/org/openjdk/jmh/runner/link/BinaryLinkServer.java


Joel Dice

unread,
Sep 17, 2014, 10:50:45 AM9/17/14
to av...@googlegroups.com
On Mon, 15 Sep 2014, Richard Kolb wrote:

> I'm having problems running JMH latest SNAPSHOT on a Ubuntu 14.04 ARM with
> Avian jvm-7-avian-jre. 0.7+20140401-1
> (The JMH code is at the bottom)
>
> Does anyone have some clues ?

Thanks for reporting this. I was able to reproduce it, but it's not
obvious yet what's going wrong. I'll take a closer look this weekend.

Joel Dice .

unread,
Sep 21, 2014, 7:53:18 PM9/21/14
to av...@googlegroups.com
It turned out to be pretty trivial:

https://github.com/ReadyTalk/avian/pull/337

It's working for me with the above patch:

cd avian
make openjdk=$JAVA_HOME
cd ../jmh/test
$(pwd)/../../avian/build/linux-x86_64-openjdk/avian-dynamic -jar
target/benchmarks.jar -jvm
$(pwd)/../../avian/build/linux-x86_64-openjdk/avian-dynamic -v EXTRA

Please let me know if you see any other problems.
Reply all
Reply to author
Forward
0 new messages