Hi Maynard,

I really apologize that I've somehow missed your first message.
ppc-aix-port-dev was the right list to post to.

I'll analyze this problem instantly and let you know why we post this
zero-code size events.

Regards,
Volker

PS: really great to see that somebody is working on oprofile/OpenJDK
integration!


On Wed, Jul 2, 2014 at 6:28 PM, Daniel D. Daugherty
<daniel.daughe...@oracle.com> wrote:
> Adding the Serviceability team to the thread since JVM/TI is owned
> by them...
>
> Dan
>
>
>
> On 7/2/14 10:15 AM, Maynard Johnson wrote:
>>
>> Cross-posting to see if Hotspot developers can help.
>>
>> -Maynard
>>
>>
>> -------- Original Message --------
>> Subject: PowerPC issue: Some JVMTI dynamic code generated events have code
>> size of zero
>> Date: Wed, 25 Jun 2014 10:18:17 -0500
>> From: Maynard Johnson <mayna...@us.ibm.com>
>> To: ppc-aix-port-...@openjdk.java.net <ppc-aix-port-...@openjdk.java.net>
>>
>> Hello, PowerPC OpenJDK folks,
>> I am just now starting to get involved in the OpenJDK project.  My goal is
>> to ensure that the standard serviceability tools and tooling (jdb, JVMTI,
>> jmap, etc.) work correctly on the PowerLinux platform.  I selected JVMTI to
>> start with since I have some experience from a client perspective with the
>> JVMTI API.  An OSS profiling tool for which I am the maintainer (oprofile)
>> provides an agent library that implements the JVMTI API.  Using this agent
>> library to profile Java apps on my Intel-based laptop with OpenJDK (using
>> various versions, up to current jdk9-dev) works fine.  But the same
>> profiling scenario attempted on my PowerLinux box (POWER7/Fedora 20) fails
>> miserably.
>>
>> The oprofile agent library registers for callbacks for CompiledMethodLoad,
>> CompiledMethodUnload, and DynamicCodeGenerated.  In the callback functions,
>> it writes information about the JVMTI event to a file.  After profiling
>> completes, oprofile's post-processing phase involves interpreting the
>> information from the agent library's output file and generating an ELF file
>> to represent the JITed code.  When I profile an OpenJDK app on my Power
>> system, the post-processing phase fails while trying to resolve overlapping
>> symbols.  The failure is due to the fact that it is unexpectedly finding
>> symbols with code size of zero overlapping at the starting address of some
>> other symbol with non-zero code size.  The symbols in question here are from
>> DynamicCodeGenerated events.
>>
>> Are these "code size=0" events valid? If so, I can fix the oprofile code
>> to handle them.  If they're not valid, then below is some debug information
>> I've collected so far.
>>
>> ----------------------------
>>
>> I instrumented JvmtiExport::post_dynamic_code_generated_internal (in
>> hotspot/src/share/vm/prims/jvmtiExport.cpp) to print a debug line when a
>> symbol with code size of zero was detected and then ran the following
>> command:
>>
>>     java
>> -agentpath:<jdk9-install-dir>/jvm/openjdk-1.9.0-internal/demo/jvmti/CodeLoadInfo/lib/libCodeLoadInfo.so
>> -version
>>
>> The debug output from my instrumentation was as follows:
>>
>>    Code size is ZERO!! Dynamic code generated event sent for
>> flush_icache_stub; code begin: 0x3fff68000080; code end: 0x3fff68000080
>>    Code size is ZERO!! Dynamic code generated event sent for
>> throw_exception; code begin: 0x3fff68000a90; code end: 0x3fff68000a90
>>    Code size is ZERO!! Dynamic code generated event sent for
>> throw_exception; code begin: 0x3fff68016600; code end: 0x3fff68016600
>>    Code size is ZERO!! Dynamic code generated event sent for
>> throw_exception; code begin: 0x3fff68016600; code end: 0x3fff68016600
>>    Code size is ZERO!! Dynamic code generated event sent for
>> throw_exception; code begin: 0x3fff68016600; code end: 0x3fff68016600
>>    Code size is ZERO!! Dynamic code generated event sent for verify_oop;
>> code begin: 0x3fff6801665c; code end: 0x3fff6801665c
>>    openjdk version "1.9.0-internal"
>>    OpenJDK Runtime Environment (build
>> 1.9.0-internal-mpj_2014_06_18_09_55-b00)
>>    OpenJDK 64-Bit Server VM (build
>> 1.9.0-internal-mpj_2014_06_18_09_55-b00, mixed mode)
>>
>>
>> I don't have access to an AIX system to know if the same issue would be
>> seen there.  Let me know if there's any other information I can provide.
>>
>> Thanks for the help.
>>
>> -Maynard
>>
>>
>>
>

Reply via email to