RFR (S): 8205426: Humongous continues remembered set does not match humongous start region one in Kitchensink

Thomas Schatzl thomas.schatzl at oracle.com
Tue Jun 26 17:15:14 UTC 2018


Hi all,

  can I have reviews for this bug in keeping remembered sets consistent
between HC and HS regions, causing crashes with verification?

The problem occurs during updating the remembered sets during the
Remark pause. This process is parallel; it uses liveness information
from marking to set the new remembered set states.

However during marking G1 attributes all liveness information of a
humongous object to the HS region; if that liveness information has not
been updated yet for HC regions, and another thread is responsible for
determining that HC region's remembered set state, the new remembered
set state of the HC region will get a state as the HS region.

The fix is to, for HC regions, just pass the liveness data of the HS
region into the method that determines the new remembered set state.
Further, in that latter method, make sure that the predicate for
determining whether a region gets a remembered set assigned is
completely disjoint for humongous and non-humongous regions.

CR:
https://bugs.openjdk.java.net/browse/JDK-8205426
Webrev:
http://cr.openjdk.java.net/~tschatzl/8205426/webrev/
Testing:
new test case, hs-tier1-4,jdk-tier1-3

Thanks,
  Thomas




More information about the hotspot-gc-dev mailing list