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

Shafi Ahmad shafi.s.ahmad at oracle.com
Tue Mar 6 08:55:56 UTC 2018


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