< prev index next >

src/share/vm/gc/g1/concurrentMark.hpp

Print this page
rev 9733 : [mq]: webrev.00
rev 9734 : [mq]: webrev.01

@@ -351,14 +351,12 @@
   // point when all the tasks complete their work. It is really used
   // to determine the points between the end of concurrent marking and
   // time of remark.
   volatile bool           _concurrent_marking_in_progress;
 
-  // True only inside of markFromRoots().
-  // Similar to _concurrent_marking_in_progress but this is set to false
-  // when CMConcurrentMarkingTask is finished.
-  volatile bool           _concurrent_marking_from_roots;
+  // Keep track of whether we have started concurrent phase or not.
+  volatile bool           _concurrent_phase_started;
 
   // All of these times are in ms
   NumberSeq _init_times;
   NumberSeq _remark_times;
   NumberSeq _remark_mark_times;

@@ -462,16 +460,10 @@
 
   // Methods to enter the two overflow sync barriers
   void enter_first_sync_barrier(uint worker_id);
   void enter_second_sync_barrier(uint worker_id);
 
-  // Start measuring concurrent mark from ConcurrentMark::markFromRoots().
-  void register_mark_from_roots_phase_start();
-
-  // End measuring concurrent mark from ConcurrentMark::markFromRoots().
-  void register_mark_from_roots_phase_end();
-
   // Live Data Counting data structures...
   // These data structures are initialized at the start of
   // marking. They are written to while marking is active.
   // They are aggregated during remark; the aggregated values
   // are then used to populate the _region_bm, _card_bm, and

@@ -525,13 +517,12 @@
   }
   void clear_concurrent_marking_in_progress() {
     _concurrent_marking_in_progress = false;
   }
 
-  bool concurrent_marking_from_roots() const {
-    return _concurrent_marking_from_roots;
-  }
+  void register_concurrent_phase_start(const char* title);
+  void register_concurrent_phase_end();
 
   void update_accum_task_vtime(int i, double vtime) {
     _accum_task_vtime[i] += vtime;
   }
 
< prev index next >