[kaffe] Bug Report: accessing array doesn't throw NullPointerException under MIPS
Kevin D. Kissell
kevink at mips.com
Wed Mar 12 00:19:01 PST 2003
A few days ago, I wrote:
> > Correct, the intrp engine works fine (albiet *SO* much slower).
> > The test are now passing.
> > Kevin, since you seem to implicated as being the MIPS assembly guru, is
> > there any way that I can assist with the JIT3 engine fixed?
> Maybe. See below.
> > Since our application is running on an embedded (300 Mhz, 30 MB RAM)
> > system my gut feeling would be that we would get a better mix of
> > performance/memory with JIT. Is there anything definitive for kaffe?
> Even broken, the kaffe JIT on MIPS is good for a factor of *20*
> performance on Embedded Caffeinemark (which is admittedly a
> pretty broken benchmark that is insanely favorable to JITs).
> I don't know what's "definitive". I have a little time to look at
> the problem just now, so maybe I can advance things. It's hard
> to see what's really going on, but most (but not all) of the JIT
> failures are on regression tests that failed similarly on the Intrp
> builds up until I fixed the argument passing logic at the native
> method invocation interface. The JIT code which does the same
> thing is similar (and similarly convoluted), but my attempts at
> finding and fixing the "same" bug were not initially successful.
> So I'm rolling up my sleeves, starting from a clean CVS update,
> and seeing what I can find. If you (or anyone else) have any interest
> or experience in figuring out what's wrong from a "top down",
> starting from the regression test and identifying the specific failure
> mode, that would be really helpful. Already, you've provided
> a small test case for a new failure mode. ;o)
One thing that I forgot to mention in my previous emails on the
topic is that one not only needs a properly patched and configured
kaffe for MIPS/Linux, but one needs an up-to-date version of the
OS and glibc as well. In particular, I'm thinking of some regression
test failures that I used to see that were caused by a bug in the kernel
signal context management code that would occasionally corrupt the
floating-point context of processes. I mention this because the failure
of the ReflectInterfaces regression test that Matthew reported with JIT
enabled is not one of the tests that I see failing under JIT3 in my setup.
While I am working on trying to understand the half-dozen regression
test failures that I still see with JIT3 on MIPS/Linux, as it turns out,
Matthew's small test program does *not* fail on my setup - it takes
and catches the Null Pointer exception as one might expect (though
I was troubled that it takes it with a "real" exception - a segmentation
violation signal being caught rather than an explicit test for null pointer).
And as an FYI to developers, I don't know what's been changed elsewhere
in the tree that would account for it, but while I can build and debug a JIT3
version of kaffe-1.0.7+patch, I cannot get "make" to complete for a JIT3
kaffe using the current CVS sources - it blows out during the compilation
of the Java class libraries, complaining about floating point values on the
order of 1-point-something being "too small".
More information about the kaffe