8196883: G1RemSet::refine_card_concurrently doesn't need to check for cards in collection set

Remove code related to collection set checking in that method.

Reviewed-by: kbarrett, ehelin
This commit is contained in:
Thomas Schatzl 2018-02-08 10:15:57 +01:00
parent 751fa92e41
commit 75ab2501f7

View File

@ -586,20 +586,6 @@ void G1RemSet::refine_card_concurrently(jbyte* card_ptr,
return;
}
// While we are processing RSet buffers during the collection, we
// actually don't want to scan any cards on the collection set,
// since we don't want to update remembered sets with entries that
// point into the collection set, given that live objects from the
// collection set are about to move and such entries will be stale
// very soon. This change also deals with a reliability issue which
// involves scanning a card in the collection set and coming across
// an array that was being chunked and looking malformed. Note,
// however, that if evacuation fails, we have to scan any objects
// that were not moved and create any missing entries.
if (r->in_collection_set()) {
return;
}
// The result from the hot card cache insert call is either:
// * pointer to the current card
// (implying that the current card is not 'hot'),
@ -624,8 +610,7 @@ void G1RemSet::refine_card_concurrently(jbyte* card_ptr,
// Check whether the region formerly in the cache should be
// ignored, as discussed earlier for the original card. The
// region could have been freed while in the cache. The cset is
// not relevant here, since we're in concurrent phase.
// region could have been freed while in the cache.
if (!r->is_old_or_humongous()) {
return;
}