Hi Maynard,

we (i.e. SAP) do not currently support the SA agent on Linux/PPC64 and
AIX (we have other proprietary servicibility tools). Because of that
(and because SA isn't specified by the SE specification) porting the
SA agent was no top priority until now. But there are no technical
reasons why it should not work (it's just a lack of  resources). Of
course contributions are always highly welcome:)

That said, the SA agent library and jar file actually gets build. If
you do a complete build you'll find them under:

hotspot/linux_ppc64_compiler2/generated/sa-jdi.jar
hotspot/linux_ppc64_compiler2/{product,fastdebug,debug}/libsaproc.so

in the build directory. They are just not copied into the jdk
workspace and the created images because they don't work out of the
box.

The following two patches for the jdk9 top-level and hotspot
repositories respectively should fix the build such that the agent
files will be correctly copied into the images.

http://cr.openjdk.java.net/~simonis/webrevs/sa_toplevel
http://cr.openjdk.java.net/~simonis/webrevs/sa_hotspot/

They will get you to the point where for example 'jstack' will run up
to the following point:

> images/j2sdk-image/bin/jstack ./jdk/bin/java core.13547
Attaching to core core.13547 from executable ./jdk/bin/java, please wait...
WARNING: Hotspot VM version
1.9.0-internal-debug-d046063_2014_07_04_11_46-b00 does not match with
SA version 1.9.0-internal-debug-d046063_2014_07_04_11_46-b00. You may
see unexpected results.
Debugger attached successfully.
Server compiler detected.
JVM version is 1.9.0-internal-debug-d046063_2014_07_04_11_46-b00
Deadlock Detection:

Exception in thread "main" java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:484)
    at sun.tools.jstack.JStack.runJStackTool(JStack.java:140)
    at sun.tools.jstack.JStack.main(JStack.java:106)
Caused by: java.lang.ExceptionInInitializerError
    at sun.jvm.hotspot.runtime.VM.getThreads(VM.java:610)
    at sun.jvm.hotspot.runtime.DeadlockDetector.print(DeadlockDetector.java:54)
    at sun.jvm.hotspot.runtime.DeadlockDetector.print(DeadlockDetector.java:39)
    at sun.jvm.hotspot.tools.StackTrace.run(StackTrace.java:62)
    at sun.jvm.hotspot.tools.StackTrace.run(StackTrace.java:45)
    at sun.jvm.hotspot.tools.JStack.run(JStack.java:66)
    at sun.jvm.hotspot.tools.Tool.startInternal(Tool.java:260)
    at sun.jvm.hotspot.tools.Tool.start(Tool.java:223)
    at sun.jvm.hotspot.tools.Tool.execute(Tool.java:118)
    at sun.jvm.hotspot.tools.JStack.main(JStack.java:92)
    ... 6 more
Caused by: java.lang.RuntimeException: OS/CPU combination linux/ppc64
not yet supported
    at sun.jvm.hotspot.runtime.Threads.initialize(Threads.java:97)
    at sun.jvm.hotspot.runtime.Threads.access$000(Threads.java:42)
    at sun.jvm.hotspot.runtime.Threads$1.update(Threads.java:52)
    at sun.jvm.hotspot.runtime.VM.registerVMInitializedObserver(VM.java:394)
    at sun.jvm.hotspot.runtime.Threads.<clinit>(Threads.java:50)
    ... 16 more

And that's the point where I was saying that "contributions are always
highly welcome:)"

Now all the Linux/PPC64 specific class under
hotspot/agent/src/share/classes/ would have to be implemented (e.g.
sun/jvm/hotspot/runtime/amd64/AMD64CurrentFrameGuess). Are you
interested in contributing to this project?

Regards,
Volker

PS: I cc-ed serviceability-dev because I remember that they started a
poll a while ago about who is using the SA tools. I'm therefore not
quite sure what's the current status and what are the future plan for
these libraries.


On Thu, Jul 3, 2014 at 9:04 PM, Maynard Johnson <mayna...@us.ibm.com> wrote:
> Hi, all,
> On my Intel laptop, I note that certain jdk9 serviceability tools -- jstack, 
> jmap, jsadebugd -- have an option to pass a core file instead of a process 
> ID; for example:
>
>         $ jstack -h
>         Usage:
>             jstack [-l] <pid>
>                 (to connect to running process)
>             jstack -F [-m] [-l] <pid>
>                 (to connect to a hung process)
>             jstack [-m] [-l] <executable> <core>
>                 (to connect to a core file)
>             jstack [-m] [-l] [server_id@]<remote server IP or hostname>
>                 (to connect to a remote debug server)
>
> But on my PowerLinux box, the core file option is missing from the usage 
> output.  I see that 
> jdk9-dev/jdk/src/share/classes/sun/tools/jstack/JStack.java requires the 
> existence of sun.jvm.hotspot.tools.JStack for the core file option to be made 
> available.  On my Intel system, the sun.jvm.hotspot.tools.JStack class is 
> packaged in sa-jdi.jar in <jdk9Dev-install>/jvm/openjdk-1.9.0-internal/lib/.  
> But the sa-jdi.jar is missing on PowerPC.  Is there a technical reason for 
> this or is it an oversight?
>
> The jsadebugd tool does not run at all on PowerLinux; it gets the following 
> error:
>
>         Error: Could not find or load main class 
> sun.jvm.hotspot.jdi.SADebugServer
>
> On my Intel system, the SADebugServer class is packaged in the sa-jdi.jar 
> mentioned above.
>
> I've spent the past day or so looking at makefiles until I'm cross-eyed, but 
> haven't yet found where the issue might be.  Any tips would be appreciated.
>
> Thanks.
> -Maynard
>

Reply via email to