Mercurial > hg > graal-compiler
comparison src/share/vm/gc_implementation/g1/g1CollectorPolicy.hpp @ 1705:2d160770d2e5
6814437: G1: remove the _new_refs array
Summary: The per-worker _new_refs array is used to hold references that point into the collection set. It is populated during RSet updating and subsequently processed. In the event of an evacuation failure it processed again to recreate the RSets of regions in the collection set. Remove the per-worker _new_refs array by processing the references directly. Use a DirtyCardQueue to hold the cards containing the references so that the RSets of regions in the collection set can be recreated when handling an evacuation failure.
Reviewed-by: iveresov, jmasa, tonyp
author | johnc |
---|---|
date | Mon, 02 Aug 2010 12:51:43 -0700 |
parents | 4e5661ba9d98 |
children | 0ce1569c90e5 |
comparison
equal
deleted
inserted
replaced
1704:63f4675ac87d | 1705:2d160770d2e5 |
---|---|
61 define_num_seq(parallel) // parallel only | 61 define_num_seq(parallel) // parallel only |
62 define_num_seq(ext_root_scan) | 62 define_num_seq(ext_root_scan) |
63 define_num_seq(mark_stack_scan) | 63 define_num_seq(mark_stack_scan) |
64 define_num_seq(update_rs) | 64 define_num_seq(update_rs) |
65 define_num_seq(scan_rs) | 65 define_num_seq(scan_rs) |
66 define_num_seq(scan_new_refs) // Only for temp use; added to | |
67 // in parallel case. | |
68 define_num_seq(obj_copy) | 66 define_num_seq(obj_copy) |
69 define_num_seq(termination) // parallel only | 67 define_num_seq(termination) // parallel only |
70 define_num_seq(parallel_other) // parallel only | 68 define_num_seq(parallel_other) // parallel only |
71 define_num_seq(mark_closure) | 69 define_num_seq(mark_closure) |
72 define_num_seq(clear_ct) // parallel only | 70 define_num_seq(clear_ct) // parallel only |
175 double* _par_last_ext_root_scan_times_ms; | 173 double* _par_last_ext_root_scan_times_ms; |
176 double* _par_last_mark_stack_scan_times_ms; | 174 double* _par_last_mark_stack_scan_times_ms; |
177 double* _par_last_update_rs_times_ms; | 175 double* _par_last_update_rs_times_ms; |
178 double* _par_last_update_rs_processed_buffers; | 176 double* _par_last_update_rs_processed_buffers; |
179 double* _par_last_scan_rs_times_ms; | 177 double* _par_last_scan_rs_times_ms; |
180 double* _par_last_scan_new_refs_times_ms; | |
181 double* _par_last_obj_copy_times_ms; | 178 double* _par_last_obj_copy_times_ms; |
182 double* _par_last_termination_times_ms; | 179 double* _par_last_termination_times_ms; |
183 double* _par_last_termination_attempts; | 180 double* _par_last_termination_attempts; |
184 double* _par_last_gc_worker_end_times_ms; | 181 double* _par_last_gc_worker_end_times_ms; |
185 | 182 |
929 _par_last_update_rs_processed_buffers[thread] = processed_buffers; | 926 _par_last_update_rs_processed_buffers[thread] = processed_buffers; |
930 } | 927 } |
931 | 928 |
932 void record_scan_rs_time(int thread, double ms) { | 929 void record_scan_rs_time(int thread, double ms) { |
933 _par_last_scan_rs_times_ms[thread] = ms; | 930 _par_last_scan_rs_times_ms[thread] = ms; |
934 } | |
935 | |
936 void record_scan_new_refs_time(int thread, double ms) { | |
937 _par_last_scan_new_refs_times_ms[thread] = ms; | |
938 } | |
939 | |
940 double get_scan_new_refs_time(int thread) { | |
941 return _par_last_scan_new_refs_times_ms[thread]; | |
942 } | 931 } |
943 | 932 |
944 void reset_obj_copy_time(int thread) { | 933 void reset_obj_copy_time(int thread) { |
945 _par_last_obj_copy_times_ms[thread] = 0.0; | 934 _par_last_obj_copy_times_ms[thread] = 0.0; |
946 } | 935 } |