Mercurial > hg > graal-compiler
comparison src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp @ 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 |
---|---|
944 for (int i = 0; i < _aux_num; ++i) { | 944 for (int i = 0; i < _aux_num; ++i) { |
945 _cur_aux_times_ms[i] = 0.0; | 945 _cur_aux_times_ms[i] = 0.0; |
946 _cur_aux_times_set[i] = false; | 946 _cur_aux_times_set[i] = false; |
947 } | 947 } |
948 | 948 |
949 // These are initialized to zero here and they are set during | 949 // This is initialized to zero here and is set during |
950 // the evacuation pause if marking is in progress. | 950 // the evacuation pause if marking is in progress. |
951 _cur_satb_drain_time_ms = 0.0; | 951 _cur_satb_drain_time_ms = 0.0; |
952 _last_satb_drain_processed_buffers = 0; | |
953 | 952 |
954 _last_young_gc_full = false; | 953 _last_young_gc_full = false; |
955 | 954 |
956 // do that for any other surv rate groups | 955 // do that for any other surv rate groups |
957 _short_lived_surv_rate_group->stop_adding_regions(); | 956 _short_lived_surv_rate_group->stop_adding_regions(); |
1365 (last_pause_included_initial_mark) ? " (initial-mark)" : "", | 1364 (last_pause_included_initial_mark) ? " (initial-mark)" : "", |
1366 elapsed_ms / 1000.0); | 1365 elapsed_ms / 1000.0); |
1367 | 1366 |
1368 if (print_marking_info) { | 1367 if (print_marking_info) { |
1369 print_stats(1, "SATB Drain Time", _cur_satb_drain_time_ms); | 1368 print_stats(1, "SATB Drain Time", _cur_satb_drain_time_ms); |
1370 print_stats(2, "Processed Buffers", _last_satb_drain_processed_buffers); | |
1371 } | 1369 } |
1372 | 1370 |
1373 if (parallel) { | 1371 if (parallel) { |
1374 print_stats(1, "Parallel Time", _cur_collection_par_time_ms); | 1372 print_stats(1, "Parallel Time", _cur_collection_par_time_ms); |
1375 print_par_stats(2, "GC Worker Start", _par_last_gc_worker_start_times_ms); | 1373 print_par_stats(2, "GC Worker Start", _par_last_gc_worker_start_times_ms); |