Remembered set verification at least with G1HRRSFlushLogBuffersOnVerify introduced by JDK-6817419 does not work.
Several reasons, all related to how the log buffer flushing is done: it calls G1RemSet::update_rs which at the time the flush is done can not be called for several reasons:
- update_rs updates several timing in G1GCPhaseTimes. This means that during GC this data structure will be updated several times for three sets of timings. This actually gives various assertion failures during GC already. (That has been introduced later than this CR).
- G1RemSet::updateRS() needs to have a properly set up the G1RemSet::_cset_rs_update_cl before calling it. This is not done, they are NULL, causing SIGSEGVs.
These _cset_rs_update_cl's would need to be special for updating the remembered set during this time too, i.e. can't use the ones from evacuation. This is not the case.
Several reasons, all related to how the log buffer flushing is done: it calls G1RemSet::update_rs which at the time the flush is done can not be called for several reasons:
- update_rs updates several timing in G1GCPhaseTimes. This means that during GC this data structure will be updated several times for three sets of timings. This actually gives various assertion failures during GC already. (That has been introduced later than this CR).
- G1RemSet::updateRS() needs to have a properly set up the G1RemSet::_cset_rs_update_cl before calling it. This is not done, they are NULL, causing SIGSEGVs.
These _cset_rs_update_cl's would need to be special for updating the remembered set during this time too, i.e. can't use the ones from evacuation. This is not the case.
- is blocked by
-
JDK-8153505 Split up G1RemSet::oops_into_collection_set_do into parts
-
- Closed
-
- relates to
-
JDK-8145442 Add the facility to verify remembered sets for G1
-
- Resolved
-
-
JDK-6817419 G1: Enable extensive verification for humongous regions
-
- Resolved
-