8198546: [Redo] JDK-8196883 G1RemSet::refine_card_concurrently doesn't need to check for cards in collection set
Summary: Remove code related to collection set checking in that method.
Reviewed-by: eosterlund, ehelin, kbarrett
--- a/src/hotspot/share/gc/g1/g1RemSet.cpp Tue Mar 06 10:30:24 2018 +0100
+++ b/src/hotspot/share/gc/g1/g1RemSet.cpp Tue Mar 06 13:08:59 2018 +0100
@@ -587,20 +587,6 @@
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'),
@@ -625,8 +611,7 @@
// 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;
}