< prev index next >

src/hotspot/share/gc/g1/g1ConcurrentMarkThread.cpp

Print this page
rev 49953 : imported patch 8201491-precleaning
rev 49954 : [mq]: 8201491-kbarrett-review

@@ -55,10 +55,11 @@
   expander(CONCURRENT_CYCLE,, "Concurrent Cycle")                          \
   expander(CLEAR_CLAIMED_MARKS,, "Concurrent Clear Claimed Marks")         \
   expander(SCAN_ROOT_REGIONS,, "Concurrent Scan Root Regions")             \
   expander(CONCURRENT_MARK,, "Concurrent Mark")                            \
   expander(MARK_FROM_ROOTS,, "Concurrent Mark From Roots")                 \
+  expander(PRECLEAN,, "Concurrent Preclean")                               \
   expander(BEFORE_REMARK,, NULL)                                           \
   expander(REMARK,, NULL)                                                  \
   expander(REBUILD_REMEMBERED_SETS,, "Concurrent Rebuild Remembered Sets") \
   expander(CLEANUP_FOR_NEXT_MARK,, "Concurrent Cleanup for Next Mark")     \
   /* */

@@ -307,11 +308,16 @@
           }
           if (_cm->has_aborted()) {
             break;
           }
 
-          // Provide a control point after mark_from_roots.
+          if (G1UseReferencePrecleaning) {
+            G1ConcPhase p(G1ConcurrentPhase::PRECLEAN, this);
+            _cm->preclean();
+          }
+
+          // Provide a control point before remark.
           {
             G1ConcPhaseManager p(G1ConcurrentPhase::BEFORE_REMARK, this);
           }
           if (_cm->has_aborted()) {
             break;
< prev index next >