review request for JDK-8013461 There is a symbol AsyncGetCallTrace in libjvm.symbols that does not exist in minimal/libjvm.a when DEBUG_LEVEL == release
Staffan Larsen
staffan.larsen at oracle.com
Tue May 21 11:21:27 PDT 2013
On 21 maj 2013, at 18:33, Kelly O'Hair <kellyohair at gmail.com> wrote:
> http://jeremymanson.blogspot.com/2007/05/profiling-with-jvmtijvmpi-sigprof-and.html
> http://stackoverflow.com/questions/3426537/how-to-properly-write-a-sigprof-handler-that-invokes-asyncgetcalltrace
> http://hiroshiyamauchi.blogspot.com/2008/12/stabilizing-asyncgetcalltrace.html
>
> The AsyncGetCallTrace symbol is a public extern symbol, unfortunately.
> So there may be third party shared libraries dependent on the extern, and optionally calling it.
> Removing the symbol will prevent those libraries from linking into the VM, even if they don't call it.
I'm willing to break this compatibility for the minimal JVM, given that it's never been supported or official in any way.
/Staffan
>
> Just FYI...
>
> -kto
>
> On May 21, 2013, at 8:35 AM, JOSEPH PROVINO wrote:
>
>>
>> On 5/21/2013 3:06 AM, David Holmes wrote:
>>> Hi Staffan,
>>>
>>> On 21/05/2013 4:49 PM, Staffan Larsen wrote:
>>>>
>>>> On 21 maj 2013, at 04:34, David Holmes <David.Holmes at oracle.com> wrote:
>>>>
>>>>> <added servicability>
>>>>>
>>>>> Hi Joe,
>>>>>
>>>>> As I have previously stated you copied the struct definitions instead of moving them outside the ifdef.
>>>>>
>>>>> Serviceability folk: we are particularly interested in whether the use of ticks_no_class_load is deemed appropriate in this situation. Who will be consuming this value?
>>>>
>>>> Since you have opted for the simple fix of having an exported but non-functional AsyncGetCallTrace instead of actually removing the symbol from the symbol files (which is the proposed solution in the bug report),
>>>
>>> That would be a simpler solution semantically but the only way I can see to do that is to use a text replacement mechanism in the build files - as is done for the dynamic vtable symbols. I find that less appealing than simply exporting an interface that is configured to report an error (which is essentially what all the optional interfaces do under the minimal VM).
>>>
>>>> I would like you to include a comment about this in the source. Right now it's very unclear why there is an exported function that only returns an error.
>>>>
>>>> As to the appropriate return value, I don't know. The only caller should be the Sun Studio profiler, and I'm not sure how it will handle this case if ever run. The possible return values aren't very well documented.
>>>
>>> I guess we need to try and run it to find out.
>>
>> Okay, do either of you feel strongly about how this should be fixed -- return an error or remove the symbol?
>>
>> joe
>>
>>>
>>> Thanks,
>>> David
>>>
>>>> /Staffan
>>>>
>>>>>
>>>>> Thanks,
>>>>> David
>>>>>
>>>>> On 21/05/2013 5:10 AM, JOSEPH PROVINO wrote:
>>>>>> The change is to include forte.cpp in the minimal jvm but to
>>>>>> conditionalize the code so that
>>>>>> only AsyncGetCallTrace() is defined with the minimal jvm.
>>>>>>
>>>>>> Webrev is here: http://cr.openjdk.java.net/~jprovino/8013461/webrev.00/
>>>>>>
>>>>>> * JDK-8013461 <https://jbs.oracle.com/bugs/browse/JDK-8013461>There is
>>>>>> a symbol AsyncGetCallTrace in libjvm.symbols that does not exist in
>>>>>> minimal/libjvm.a when DEBUG_LEVEL == release
>>>>>> <https://jbs.oracle.com/bugs/browse/JDK-8013461>
>>>>>>
>>>>>> Thanks.
>>>>>>
>>>>>> joe
>>>>>>
>>>>>>
>>>>
>>
>
More information about the serviceability-dev
mailing list