RFR (S): 8059758: Startup benchmark performance and footprint regressions with JDK-8038423

Thomas Schatzl thomas.schatzl at oracle.com
Mon Oct 6 11:48:06 UTC 2014


Hi all,

  can I have reviews for the following change that allows lazy
initialization of G1 auxiliary data structures again to remove a
footprint and performance regression for startup benchmarks with G1?

The problem is that with recent changes that allowed G1 to decommit
regions within the heap freely, the VM always initialized associated
auxiliary data structures (BOT, card table, mark bitmaps).

This works somewhat against OSes lazy initialization of committed pages
where they are actually only backed by physical memory on the first
access.

These startup benchmarks never actually use this memory because they are
so simple, so this causes performance and footprint regression with the
mentioned change.

This fix fixes these regressions by passing around information to the
various notifications whether the recently committed memory can be
considered already zero or not, and skips the data structure
initialization if possible (i.e. if the reset values equal the default
initialization values of newly committed pages).

Webrev:
http://cr.openjdk.java.net/~tschatzl/8059758/webrev/
CR:
https://bugs.openjdk.java.net/browse/JDK-8059758
Testing:
jprt, startup benchmarks

Thanks,
  Thomas





More information about the hotspot-gc-dev mailing list