PowerPC: core file option not available with serviceability tools
Volker Simonis
volker.simonis at gmail.com
Wed Jul 9 17:38:12 UTC 2014
On Wed, Jul 9, 2014 at 3:45 PM, Maynard Johnson <maynardj at us.ibm.com> wrote:
> On 07/04/2014 10:59 AM, Volker Simonis wrote:
>> 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:
> Ok, great. This should be enough to get me started. I should have time to begin on this later this week or early next week.
Hi Maynard,
great to welcome you in the ppc64 porting team:)
> I may come knocking at your "door" for some occasional help, but I'll try to keep that to a minimum.
Please feel free to ask any questions. The OpenJDK project and
especially the HotSpot part are known to take some getting used to.
> I was wondering if a bug report should be opened in JBS, just to record that the issue is being worked. Thoughts?
I have opened "8049715: PPC64: First steps to enable SA on
Linux/PPC64" (https://bugs.openjdk.java.net/browse/JDK-8049715) for
the patch which I sent you with the last mail. I've already sent out
webrevs for that change and hopefully it will be fixed within the next
few days.
For the actual port of the ppc64-specific stuff I opened bug "8049716
PPC64: Implement SA on Linux/PPC64"
(https://bugs.openjdk.java.net/browse/JDK-8049716). I can also help
with hosting the webrevs, once you have a running version.
Regards,
Volker
>
> -Maynard
>>
>>> 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 <maynardj at 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
>>>
>>
>
More information about the ppc-aix-port-dev
mailing list