[PATCH RFC 0/2] Add linux/ppc64 support for Hotspot serviceability agent to read core files

Maynard Johnson maynardj at us.ibm.com
Fri Nov 14 18:09:24 UTC 2014


When Hotspot SA tools jmap, jstack, and jsadebugd are run against a core file, they fail with the following runtime exception:

     OS/CPU combination linux/ppc64 not yet supported

I will post a patch set that adds this support.  The patch set consists of the following patches:

PATCH 1/2: Updates to non-Java files to support linux/ppc64 Hotspot SA with core files

PATCH 2/2: New PPC64 class files (and updates to generic files) to support linux/ppc64 Hotspot SA with core files

These two patches apply cleanly to a November 13 pull of the jdk9-dev upstream sources.

------------
Open issues:
------------
  1) The jstack tool does not print a stack entry for the 'main()' method of the Java
     workload (attached) under test.  For example:

     (Note:  Addresses and method signatures elided for brevity.)

       Thread 24358: (state = IN_JAVA, current Java SP = null
       )
        - java.lang.String.getChars(...) @bci=58, line=814, pc=..., Method*=... (Compiled frame; ... imprecise)
        - test.run_test() @bci=80, line=33, pc=..., Method*=... (Compiled frame)
     ==> (Expect an entry for test.main() here)
     
  2) The jstack tool sometimes prints what appears to be two complete stacks for the Java workload. For example:

       Thread 24779: (state = IN_JAVA, current Java SP = null
       )
        - java.lang.String.getChars(...) @bci=58, line=814, pc=..., Method*=... (Compiled frame; ... imprecise)
        - test.run_test() @bci=80, line=33, pc=..., Method*=... (Compiled frame)
        - test.get_my_chars(...) @bci=39, line=15, pc=..., Method*=... (Compiled frame)
        - test.run_test() @bci=92, line=34, pc=..., Method*=... (Compiled frame)

       Again, the 'test.main' method is missing, but there's also the anomaly of the 
       test.run_test' method showing up twice in the stack, implying that it is called
       by 'test.get_my_chars' at line 15.  But that that is not accurate. In fact, run_test
       does call String.getChars at line 33 *and* it calls test.get_my_chars at line 34 --
       but these are totally distinct call graphs.  Somehow, we are seeing these two distinct
       stacks in the core file, which seems impossible.

---------

Any help offered on these two open issues would be greatly appreciated.

-Maynard
-------------- next part --------------
A non-text attachment was scrubbed...
Name: test.java
Type: text/x-java
Size: 1447 bytes
Desc: not available
URL: <http://mail.openjdk.java.net/pipermail/ppc-aix-port-dev/attachments/20141114/729ed8d8/test.java>


More information about the ppc-aix-port-dev mailing list