RFR(S): 8026495: JVM Crashes when started with -XX:+DTraceMethodProbes on Solaris x86_64
john.r.rose at oracle.com
Tue Oct 22 22:06:40 PDT 2013
On Oct 22, 2013, at 8:18 PM, Igor Veresov <igor.veresov at oracle.com> wrote:
> A bunch of problems here, starting from use of wrong calling convention in LIR_Assembler::emit_unwind_handler() - it simply hasn't been ported to 64bit.
> Also, there are a bunch of holes left in C1 to support T_METADATA. The relevant for this problem are the calling convention generation, and the register allocator support.
> Webrev: http://cr.openjdk.java.net/~iveresov/8026495/
> Testing: Java2Demo with -XX:+DTraceMethodProbes, JPRT run in progress
That's some technical debt there. Thanks for shoveling through it. Perhaps there's more, but this is a good barrow load to wheel away.
The biggest surprise was type2spill_size. Wasn't that thing raising warnings since the no-permgen rewrite?
Your use of rbx looks OK, but I wish there were a way to assert what you comment about it, that all the C compilers refrain from blowing it. Seems like something that could go wrong later. I looked around for something to grab; nothing in assembler_x86.hpp where the C calling conventions are surveyed, but perhaps we could put something there some day. The *.ad files have the info, but it's hard to get at.
P.S. I personally don't mind stacked NOT_FOO/FOO_ONLY macros if their bodies are tiny and that there are not larger changes nearby.
More information about the hotspot-compiler-dev