RFR (xs) 8075967: Zero interpreter asserts for SafeFetch<32, N> calls in ObjectMonitor

Severin Gehwolf sgehwolf at redhat.com
Fri Mar 27 09:30:21 UTC 2015


On Thu, 2015-03-26 at 14:39 -0400, Coleen Phillimore wrote:
[...]

> The hotspot runtime jtreg tests do poorly because CompressedOops aren't 
> supported.  I don't know why they aren't supported.  When I took out the 
> code to disable CompressedOops, more tests passed.

OK. What's your reproducer for this?

> Zero doesn't support CDS because metaspaceShared_zero.cpp needs some 
> generated code that isn't done with Zero.
> >
> > With that being said, Zero should be in better shape now than it was a
> > while ago. Back then, it wouldn't even compile in latest upstream
> > trees...
> 
> Yes, I heard that it works fairly well in jdk8 so getting it to work for 
> jdk9 was just accounting for new changes.
> >
> > Depending on available cycles I'll try to help as much as I can. The
> > best metric we have currently for Zero is its ability to build itself.
> > I've never managed to go through all failing jtreg tests and determine
> > exactly what's wrong (test or JVM failure).
> >
> >> It seems to be missing a lot.
> > Right. A good starting point is making people aware that it exists so
> > that no new compilation errors get introduced. You've been doing a great
> > job at this. Thanks! My goal is to make Zero better over time, since
> > it's been lacking basic maintainership for a while in upstream OpenJDK.
> >
> > Aside: Zero is using the C++ interpreter which AFAIK, isn't used much
> > anywhere else. Most (all?) JIT ports use the template interpreter these
> > days.
> 
> Most ports use the template interpreter because it's significantly 
> faster, but the Zero interpreter by not having any generated native code 
> makes getting a new port running faster.  It also may be nice to 
> prototype new bytecodes in C++ rather than as macro assembler. And it's 
> sort of cool.
> 
> Yes, Zero uses interpreter/bytecodeInterpreter.cpp which is written in 
> C++.   What we call the C++ interpreter is something else that also uses 
> bytecodeInterpreter.cpp.
> 
> https://bugs.openjdk.java.net/browse/JDK-8074457

Thanks for this pointer. That explains why I wasn't able to get a basic
build --with-jvm-interpreter=cpp working.

> Keeping Zero compiling and running is not part of our normal testing, so 
> most of the contributions are coming from outside Oracle for this.

Indeed :)

Cheers,
Severin

> Coleen
> >
> > Thanks,
> > Severin
> >
> >> Thanks,
> >> Coleen
> >>
> >>> Changes look fine to me.
> >>>
> >>> Cheers,
> >>> Severin
> >>>
> >>>> Thanks,
> >>>> Coleen
> >>>
> >
> >
> 





More information about the hotspot-dev mailing list