[8u60] Backport for 8058354: SPECjvm2008-Derby -2.7% performance regression on Solaris-X64 starting with 9-b2

Thomas Schatzl thomas.schatzl at oracle.com
Mon Apr 13 09:59:08 UTC 2015


Hi all,

  can I have reviews for the backport of "8058354: SPECjvm2008-Derby
-2.7% performance regression on Solaris-X64 starting with 9-b29" for
8u60?

It did only apply with some changes, so I need re-reviews. There are two
issues:

- jdk9 removed one parameter of ReservedSpace::initialize(), namely the
"noaccess_prefix" one. Jdk8 still has that one, so there has been a
merge error in ReservedSpace::ReservedSpace(size_t, bool).

- g1PageBasedVirtualSpace.cpp uses the vmassert() macro not backported.
I had to change everything to use the regular assert macro.

- in G1PageBasedVirtualSpace::commit() the call to os::pretouch_memory()
has been different to jdk9 because the related change had been
backported out of order with another change.

I.e. the original code right now in 8u uses

 161   if (AlwaysPreTouch) {
 162     os::pretouch_memory(page_start(start), page_start(start) + byte_size_for_pages(size_in_pages));
 163   }

In JDK9 the code has been

214  if (AlwaysPreTouch) {
215    os::pretouch_memory(page_start(start), page_start(end));
216  }

With this change the code in 8u60 and 9 will be aligned again.

CR:
https://bugs.openjdk.java.net/browse/JDK-8058354
Full webrev:
http://cr.openjdk.java.net/~tschatzl/8058354-8u60/webrev.8u60/
Diff webrev (with the merge changes):
http://cr.openjdk.java.net/~tschatzl/8058354-8u60/webrev.8u60-fix/

Testing:
jprt

This change is based on the backport for JDK-8066875 that has
been reviewed just recently.

With this change (and the follow-up bugfix 8077255 that applies
cleanly) all backports in this long dependency chain are done. Thanks
everyone for participating.

Thanks,
  Thomas



More information about the hotspot-gc-dev mailing list