[8u] RFR for backport of JDK-8026331: hs_err improvement: Print if we have seen any OutOfMemoryErrors or StackOverflowErrors

David Holmes david.holmes at oracle.com
Tue Mar 6 12:39:26 UTC 2018


Hi Shafi,

This seems like an accurate backport of the error reporting enhancements.

Copyright years need updating to 2018.

Thanks,
David

On 6/03/2018 6:55 PM, Shafi Ahmad wrote:
> Hi All,
> 
> Could someone please review it.
> 
> Regards,
> Shafi
> 
> 
>> -----Original Message-----
>> From: Shafi Ahmad
>> Sent: Tuesday, February 06, 2018 11:27 AM
>> To: hotspot-dev at openjdk.java.net
>> Cc: Stephen Fitch <stephen.fitch at oracle.com>
>> Subject: RE: [8u] RFR for backport of JDK-8026331: hs_err improvement: Print
>> if we have seen any OutOfMemoryErrors or StackOverflowErrors
>>
>> Hi,
>>
>> Could someone please review it.
>>
>> Regards,
>> Shafi
>>
>>> -----Original Message-----
>>> From: Shafi Ahmad
>>> Sent: Monday, January 29, 2018 10:16 AM
>>> To: hotspot-dev at openjdk.java.net
>>> Subject: RE: [8u] RFR for backport of JDK-8026331: hs_err improvement:
>>> Print if we have seen any OutOfMemoryErrors or StackOverflowErrors
>>>
>>> 2nd try...
>>>
>>> Regards,
>>> Shafi
>>>
>>>> -----Original Message-----
>>>> From: Shafi Ahmad
>>>> Sent: Wednesday, January 24, 2018 3:16 PM
>>>> To: hotspot-dev at openjdk.java.net
>>>> Subject: [8u] RFR for backport of JDK-8026331: hs_err improvement:
>>>> Print if we have seen any OutOfMemoryErrors or StackOverflowErrors
>>>>
>>>> Hi,
>>>>
>>>> Please review the backport of bug: " JDK-8026331: hs_err improvement:
>>>> Print if we have seen any OutOfMemoryErrors or StackOverflowErrors"
>>>> to
>>>> jdk8u- dev.
>>>>
>>>> Please note that this is not a clean backport as I got below
>>>> conflicts
>>>> -
>>>>
>>>> hotspot$ find ./ -name "*.rej" -exec cat {} \;
>>>> --- metaspace.cpp
>>>> +++ metaspace.cpp
>>>> @@ -3132,10 +3132,21 @@
>>>>     initialize_class_space(metaspace_rs);
>>>>
>>>>     if (PrintCompressedOopsMode || (PrintMiscellaneous && Verbose)) {
>>>> -    gclog_or_tty->print_cr("Narrow klass base: " PTR_FORMAT ", Narrow
>>>> klass shift: %d",
>>>> -                            p2i(Universe::narrow_klass_base()),
>>>> Universe::narrow_klass_shift());
>>>> -    gclog_or_tty->print_cr("Compressed class space size: " SIZE_FORMAT
>> "
>>>> Address: " PTR_FORMAT " Req Addr: " PTR_FORMAT,
>>>> -                           compressed_class_space_size(),
>> p2i(metaspace_rs.base()),
>>>> p2i(requested_addr));
>>>> +    print_compressed_class_space(gclog_or_tty, requested_addr);
>>>> +  }
>>>> +}
>>>> +
>>>> +void Metaspace::print_compressed_class_space(outputStream* st,
>>>> +const
>>>> char* requested_addr) {
>>>> +  st->print_cr("Narrow klass base: " PTR_FORMAT ", Narrow klass shift:
>>> %d",
>>>> +               p2i(Universe::narrow_klass_base()),
>>>> Universe::narrow_klass_shift());
>>>> +  if (_class_space_list != NULL) {
>>>> +    address base =
>>>> + (address)_class_space_list->current_virtual_space()-
>>>>> bottom();
>>>> +    st->print("Compressed class space size: " SIZE_FORMAT " Address: "
>>>> PTR_FORMAT,
>>>> +                 compressed_class_space_size(), p2i(base));
>>>> +    if (requested_addr != 0) {
>>>> +      st->print(" Req Addr: " PTR_FORMAT, p2i(requested_addr));
>>>> +    }
>>>> +    st->cr();
>>>>     }
>>>>   }
>>>>
>>>> --- universe.cpp
>>>> +++ universe.cpp
>>>> @@ -781,27 +781,24 @@
>>>>     return JNI_OK;
>>>>   }
>>>>
>>>> -void Universe::print_compressed_oops_mode() {
>>>> -  tty->cr();
>>>> -  tty->print("heap address: " PTR_FORMAT ", size: " SIZE_FORMAT "
>>>> MB",
>>>> +void Universe::print_compressed_oops_mode(outputStream* st) {
>>>> +  st->print("heap address: " PTR_FORMAT ", size: " SIZE_FORMAT "
>>>> +MB",
>>>>                 p2i(Universe::heap()->base()), Universe::heap()-
>>>>> reserved_region().byte_size()/M);
>>>>
>>>> -  tty->print(", Compressed Oops mode: %s",
>>>> narrow_oop_mode_to_string(narrow_oop_mode()));
>>>> +  st->print(", Compressed Oops mode: %s",
>>>> narrow_oop_mode_to_string(narrow_oop_mode()));
>>>>
>>>>     if (Universe::narrow_oop_base() != 0) {
>>>> -    tty->print(": " PTR_FORMAT, p2i(Universe::narrow_oop_base()));
>>>> +    st->print(": " PTR_FORMAT, p2i(Universe::narrow_oop_base()));
>>>>     }
>>>>
>>>>     if (Universe::narrow_oop_shift() != 0) {
>>>> -    tty->print(", Oop shift amount: %d", Universe::narrow_oop_shift());
>>>> +    st->print(", Oop shift amount: %d",
>>>> + Universe::narrow_oop_shift());
>>>>     }
>>>>
>>>>     if (!Universe::narrow_oop_use_implicit_null_checks()) {
>>>> -    tty->print(", no protected page in front of the heap");
>>>> +    st->print(", no protected page in front of the heap");
>>>>     }
>>>> -
>>>> -  tty->cr();
>>>> -  tty->cr();
>>>> +  st->cr();
>>>>   }
>>>>
>>>> Webrev: http://cr.openjdk.java.net/~shshahma/8026331/webrev.00/
>>>> Jdk9 bug: https://bugs.openjdk.java.net/browse/JDK-8026331
>>>> Original patch pushed to jdk9:
>>>> http://hg.openjdk.java.net/jdk9/jdk9/hotspot/rev/cf5a0377f578
>>>>
>>>> Test:  Run jprt -testset hotspot and jtreg - hotspot/test
>>>>
>>>> Regards,
>>>> Shafi


More information about the hotspot-dev mailing list