Mercurial > hg > graal-jvmci-8
comparison src/share/vm/gc_implementation/g1/g1CollectorPolicy.hpp @ 4096:00dd86e542eb
7114303: G1: assert(_g1->mark_in_progress()) failed: shouldn't be here otherwise
Summary: Race between the VM thread reading G1CollectedHeap::_mark_in_progress and it being set by the concurrent mark thread when concurrent marking is aborted by a full GC. Have the concurrent mark thread join the SuspendibleThreadSet before changing the marking state.
Reviewed-by: tonyp, brutisso
author | johnc |
---|---|
date | Mon, 28 Nov 2011 09:49:05 -0800 |
parents | bca17e38de00 |
children | dc467e8b2c5e |
comparison
equal
deleted
inserted
replaced
4095:bca17e38de00 | 4096:00dd86e542eb |
---|---|
532 double avg_value (double* data); | 532 double avg_value (double* data); |
533 double max_value (double* data); | 533 double max_value (double* data); |
534 double sum_of_values (double* data); | 534 double sum_of_values (double* data); |
535 double max_sum (double* data1, double* data2); | 535 double max_sum (double* data1, double* data2); |
536 | 536 |
537 int _last_satb_drain_processed_buffers; | |
538 double _last_pause_time_ms; | 537 double _last_pause_time_ms; |
539 | 538 |
540 size_t _bytes_in_collection_set_before_gc; | 539 size_t _bytes_in_collection_set_before_gc; |
541 size_t _bytes_copied_during_gc; | 540 size_t _bytes_copied_during_gc; |
542 | 541 |
772 void record_satb_drain_time(double ms) { | 771 void record_satb_drain_time(double ms) { |
773 assert(_g1->mark_in_progress(), "shouldn't be here otherwise"); | 772 assert(_g1->mark_in_progress(), "shouldn't be here otherwise"); |
774 _cur_satb_drain_time_ms = ms; | 773 _cur_satb_drain_time_ms = ms; |
775 } | 774 } |
776 | 775 |
777 void record_satb_drain_processed_buffers(int processed_buffers) { | |
778 assert(_g1->mark_in_progress(), "shouldn't be here otherwise"); | |
779 _last_satb_drain_processed_buffers = processed_buffers; | |
780 } | |
781 | |
782 void record_update_rs_time(int thread, double ms) { | 776 void record_update_rs_time(int thread, double ms) { |
783 _par_last_update_rs_times_ms[thread] = ms; | 777 _par_last_update_rs_times_ms[thread] = ms; |
784 } | 778 } |
785 | 779 |
786 void record_update_rs_processed_buffers (int thread, | 780 void record_update_rs_processed_buffers (int thread, |