< 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 >