I have a problem with jikesrvm and SPEC JVM98 benchmarks.
I'm trying to run the adaptive system using method counters to detect
method hotness. Everything works just fine for _201_compress and _227_mtrt, but
jikes crashes with a NullPointerException for _202_jess, _209_db,
_213_javac and _228_jack.
The NullPointerException is raised in OSR_Profiler.java. More precisely,
VM_Controller.methodSamples is null. I grepped for methodSamples and I
couldn't find a place where this data structure is initialized (i.e., the
constructor is never called).
Jikes crashes when build with FastAdaptive or FullAdaptive, but it works
fine with BaseAdaptive. I guess it just happens that that piece of code is
Does anybody have any insight into this?
Please see below the exception stack.
Thanks in advance,
Exception in thread "VM_CompilationThread": java.lang.NullPointerException
at <hardware trap>
From: Michael Hind <hindm@us...> - 2005-05-24 02:44:33
If you are using method counters to drive recompilation you are
using an experimental version of the system. I believe it may not
support OSR (on-stack replacement) so you will probably have to turn it
off if you really need to use method counters.
The methodSamples is used when the timer-based sampling mechanism
(the default) is used to drive recompilation.
The fact that you got it to work with some images, but not others,
probably means that OSR wasn't being called on the images where it didn't
Michael Hind, Manager, Dynamic Optimization Group
IBM Watson Research Center
hind@..., 914 784-7589, tie: 863-7589
Jikes RVM is now on sourceforge: http://jikesrvm.sourceforge.net