RFR: 8242038: G1: Lazily initialize RSHashTables

Claes Redestad claes.redestad at oracle.com
Thu Apr 2 16:07:54 UTC 2020


Hi,

make RSHashTable initialization lazy by replacing the initial table for
each region with a shared empty sentinel. Using an empty_table might be
a bit tricky/"clever", but it ensures logic and lookups behave properly
before we add a card to a regions RS.

Initialization to a unique table then piggy-backs on the test that
checks whether we need to expand the RSHashTable, so GC overhead should
be neutral (or even an improvement in cases where most PRTs stay empty).

Webrev: http://cr.openjdk.java.net/~redestad/8242038/open.00/
Bug:    https://bugs.openjdk.java.net/browse/JDK-8242038

Testing: tier1-3, verified a small improvement to startup

Thanks!

/Claes



More information about the hotspot-gc-dev mailing list