8196883: G1RemSet::refine_card_concurrently doesn't need to check for cards in collection set
authortschatzl
Thu, 08 Feb 2018 10:15:57 +0100
changeset 48778 808555a54e9c
parent 48777 c2aec276d36a
child 48779 fdc2a952e8fe
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: kbarrett, ehelin
src/hotspot/share/gc/g1/g1RemSet.cpp
--- a/src/hotspot/share/gc/g1/g1RemSet.cpp	Tue Feb 06 22:26:13 2018 -0800
+++ b/src/hotspot/share/gc/g1/g1RemSet.cpp	Thu Feb 08 10:15:57 2018 +0100
@@ -586,20 +586,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'),
@@ -624,8 +610,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;
       }