RFR: JDK-8136577: Make AbortVMOnException available in product builds
Coleen Phillimore
coleen.phillimore at oracle.com
Tue Oct 13 21:26:09 UTC 2015
On 10/13/15 5:06 PM, Poonam Bajaj Parhar wrote:
> Hello Coleen,
>
> On 10/12/2015 10:55 AM, Coleen Phillimore wrote:
>>
>> Hi Poonam,
>> I really like this except for this in exceptions.cpp. This function
>> should be in exceptions.hpp (because it won't be inlined in cpp). I
>> think there are some hot paths performance wise through the exception
>> code so would be nice to inline this small function in the header file.
>>
>> -void Exceptions::debug_check_abort(Handle exception, const char*
>> message) {
>> +inline void Exceptions::debug_check_abort(Handle exception, const
>> char* message) {
>> if (AbortVMOnException != NULL) {
>> + debug_check_abort_helper(exception, message);
>> + }
>> +}
>> +
>
> Moving it to exceptions.hpp file causes build failure:
>
> /Building target 'images' in configuration
> 'solaris-sparcv9-normal-server-release'//
> //"<..>/hotspot/src/share/vm/utilities/exceptions.hpp", line 180:
> Error: The type "Handle" is incomplete.//
> //1 Error(s) detected./
>
> So, looks like we can not make Exceptions::debug_check_abort() as
> inline function without disturbing the include structure.
Okay, this is fine. I was afraid it might introduce a circular
dependency in the include files since exceptions.hpp is included early on.
>
> Here's the updated version of the webrev, it removes the inline
> keyword from the function definition in cpp file.
> http://cr.openjdk.java.net/~poonam/8136577/webrev.02/
This looks fine. If we note any specific performance problem, we can
make that specific call site check AbortVMOnException.
Thank you for making these changes.
Coleen
>
> Thanks,
> Poonam
>
>>
>> Thanks,
>> Coleen
>>
>> On 10/12/15 10:03 AM, Poonam Bajaj Parhar wrote:
>>> Hello Coleen,
>>>
>>> Please take a look at the updated webrev:
>>> http://cr.openjdk.java.net/~poonam/8136577/webrev.01/
>>>
>>> Thanks,
>>> Poonam
>>>
>>> On 10/9/2015 8:15 AM, Poonam Bajaj Parhar wrote:
>>>> Hello Coleen,
>>>>
>>>> On 10/8/2015 11:04 AM, Coleen Phillimore wrote:
>>>>>
>>>>> http://cr.openjdk.java.net/~poonam/8136577/webrev.00/src/share/vm/utilities/exceptions.hpp.udiff.html
>>>>>
>>>>>
>>>>> I was wondering if you could make the function debug_check_abort
>>>>> an inline function in exceptions.hpp that checks
>>>>> AbortVMOnException != NULL and calls a helper to save this
>>>>> conditional in all the callers?
>>>>>
>>>>> static void debug_check_abort(Handle exception, const char*
>>>>> message = NULL) {
>>>>> if (AbortVMException != NULL)
>>>>> debug_check_abort_helper(exception, message);
>>>>> }
>>>>> }
>>>> Sure, I will make this change and will send the updated webrev.
>>>>
>>>> Thanks,
>>>> Poonam
>>>>
>>>>>
>>>>> Thanks,
>>>>> Coleen
>>>>>
>>>>> On 10/6/15 9:57 AM, Poonam Bajaj Parhar wrote:
>>>>>
>>>>>> Hello,
>>>>>>
>>>>>> Please review the code changes for the following change request:
>>>>>>
>>>>>> Bug: JDK-8136577: Make AbortVMOnException available in product
>>>>>> builds
>>>>>>
>>>>>> Fix: These changes make the JVM options AbortVMOnException and
>>>>>> AbortVMOnExceptionMessage available in product builds by changing
>>>>>> them from 'debug' to 'diagnostic' options. Having these in
>>>>>> product builds would be very useful to capture diagnostic data
>>>>>> when an application fails with exceptions. This would be very
>>>>>> useful in troubleshooting issues where only an exception is thrown.
>>>>>>
>>>>>> Webrev: http://cr.openjdk.java.net/~poonam/8136577/webrev.00/
>>>>>>
>>>>>> Tests: Ran a simple testcase that throws exception and confirmed
>>>>>> that it generates hs_err and core file when the specified
>>>>>> exception occurs.
>>>>>>
>>>>>> regards,
>>>>>> Poonam
>>>>>>
>>>>>
>>>>
>>>
>>
>
More information about the hotspot-runtime-dev
mailing list