[Sablevm-developer] JGFSyncBench fails
Brought to you by:
egagnon
From: Chris P. <chr...@ma...> - 2004-01-31 05:24:40
|
Hi, I'm trying to get some basic multithreading benchmarks to run with recent stagings (sablevm@1503 + sablevm-classpath@1509), but a seemingly simple one always fails (it works with Sun's java-1.4.1). I did not try older builds with this benchmark, but Bruno's RollerCoaster was failing with the switch interpreter as well and that was why I upgraded to staging (it no longer fails). I'm trying to run JGFSyncBench in section1 of the multithreaded Java Grande Forum Benchmarks: http://www.epcc.ed.ac.uk/computing/research_activities/java_grande/index_1.html I would like to try and fix this bug, but seeing as I have until now been primarily fixing problems with my own stuff, I need some pointers as to what needs to be fixed (I am not familiar with the written code, and concurrency problems are not exactly fun to debug), confirmation that it also fails for you, at least some of the time, and maybe suggestions as to how to fix this (if you have them). Other mt benchmarks seem to be working okay (not all with my spmt stuff, e.g. RollerCoaster still fails, but that's possibly a separate issue). The JGFSyncBench benchmark sets up an array of threads, and then calls a synchronized method to update a counter inside them (source is uncommented but I couldn't see any problems with it). Cheers, Chris ============================================================= $ wget http://www.epcc.ed.ac.uk/computing/research_activities/java_grande/threads/jgf_threadv1.0.tar.gz $ tar xvfz jgf_threadv1.0.tar.gz $ cd threadv1.0 # not 100% sure about dir name, I changed mine $ cd jgfutil $ javac *.* # or gcj-3.3.2 $ cd .. $ cd section1 $ javac *.* # or gcj-3.3.2 $ java -cp .:..:/usr/localcc/pkgs/j2sdk1.4.1/jre/lib/rt.jar JGFSyncBench The no of threads has not been specified, defaulting to 1 Java Grande Forum Thread Benchmark Suite - Version 1.0 - Section 1 Executing on 1 thread Section1:Sync:Method 81471.58 (synchronisations/s) Section1:Sync:Object 79458.69 (synchronisations/s) $ sablevm-staging-switch -c .:.. -Y JGFSyncBench The no of threads has not been specified, defaulting to 1 Java Grande Forum Thread Benchmark Suite - Version 1.0 - Section 1 Executing on 1 thread java.lang.NullPointerException at SyncMethodRunner.run (JGFSyncBench.java:166) at JGFSyncBench.JGFrun (JGFSyncBench.java:64) at JGFSyncBench.main (JGFSyncBench.java:133) at java.lang.VirtualMachine.invokeMain (VirtualMachine.java) at java.lang.VirtualMachine.main (VirtualMachine.java:88) $ sablevm-staging-switch -c .:.. -Y JGFSyncBench The no of threads has not been specified, defaulting to 1 Java Grande Forum Thread Benchmark Suite - Version 1.0 - Section 1 Executing on 1 thread Exception in thread "Thread-10" java.lang.NullPointerException at SyncMethodRunner.run (JGFSyncBench.java:166) at java.lang.Thread.run (Thread.java:455) at java.lang.VMThread.callRun (VMThread.java:116) at java.lang.Thread.callRun (Thread.java:333) at java.lang.VirtualMachine.runThread (VirtualMachine.java:117) java.lang.NullPointerException at SyncMethodRunner.run (JGFSyncBench.java:166) at JGFSyncBench.JGFrun (JGFSyncBench.java:64) at JGFSyncBench.main (JGFSyncBench.java:133) at java.lang.VirtualMachine.invokeMain (VirtualMachine.java) at java.lang.VirtualMachine.main (VirtualMachine.java:88) ---> it's different output each time as well, which makes this messier. |