src/share/vm/gc_implementation/g1/concurrentMark.inline.hpp

Print this page
rev 2724 : 6484965: G1: piggy-back liveness accounting phase on marking
Summary: Remove the separate counting phase of concurrent marking by tracking the amount of marked bytes and the cards spanned by marked objects in marking task/worker thread local data structures, which are updated as individual objects are marked.
Reviewed-by:

@@ -97,10 +97,13 @@
                                  _task_id, (void*) obj);
         }
 
         // we need to mark it first
         if (_nextMarkBitMap->parMark(objAddr)) {
+          // Update the task specific count data with obj.
+          _cm->add_to_count_data_for(obj, hr, _task_id);
+
           // No OrderAccess:store_load() is needed. It is implicit in the
           // CAS done in parMark(objAddr) above
           HeapWord* global_finger = _cm->finger();
 
 #if _CHECK_BOTH_FINGERS_