1.1 --- a/src/share/vm/gc_implementation/g1/g1CollectorPolicy.hpp Wed Mar 25 10:36:08 2009 -0400 1.2 +++ b/src/share/vm/gc_implementation/g1/g1CollectorPolicy.hpp Wed Mar 25 13:10:54 2009 -0700 1.3 @@ -47,7 +47,6 @@ 1.4 } 1.5 1.6 class MainBodySummary; 1.7 -class PopPreambleSummary; 1.8 1.9 class PauseSummary: public CHeapObj { 1.10 define_num_seq(total) 1.11 @@ -55,7 +54,6 @@ 1.12 1.13 public: 1.14 virtual MainBodySummary* main_body_summary() { return NULL; } 1.15 - virtual PopPreambleSummary* pop_preamble_summary() { return NULL; } 1.16 }; 1.17 1.18 class MainBodySummary: public CHeapObj { 1.19 @@ -75,36 +73,13 @@ 1.20 define_num_seq(clear_ct) // parallel only 1.21 }; 1.22 1.23 -class PopPreambleSummary: public CHeapObj { 1.24 - define_num_seq(pop_preamble) 1.25 - define_num_seq(pop_update_rs) 1.26 - define_num_seq(pop_scan_rs) 1.27 - define_num_seq(pop_closure_app) 1.28 - define_num_seq(pop_evacuation) 1.29 - define_num_seq(pop_other) 1.30 -}; 1.31 - 1.32 -class NonPopSummary: public PauseSummary, 1.33 - public MainBodySummary { 1.34 +class Summary: public PauseSummary, 1.35 + public MainBodySummary { 1.36 public: 1.37 virtual MainBodySummary* main_body_summary() { return this; } 1.38 }; 1.39 1.40 -class PopSummary: public PauseSummary, 1.41 - public MainBodySummary, 1.42 - public PopPreambleSummary { 1.43 -public: 1.44 - virtual MainBodySummary* main_body_summary() { return this; } 1.45 - virtual PopPreambleSummary* pop_preamble_summary() { return this; } 1.46 -}; 1.47 - 1.48 -class NonPopAbandonedSummary: public PauseSummary { 1.49 -}; 1.50 - 1.51 -class PopAbandonedSummary: public PauseSummary, 1.52 - public PopPreambleSummary { 1.53 -public: 1.54 - virtual PopPreambleSummary* pop_preamble_summary() { return this; } 1.55 +class AbandonedSummary: public PauseSummary { 1.56 }; 1.57 1.58 class G1CollectorPolicy: public CollectorPolicy { 1.59 @@ -146,10 +121,6 @@ 1.60 double _cur_satb_drain_time_ms; 1.61 double _cur_clear_ct_time_ms; 1.62 bool _satb_drain_time_set; 1.63 - double _cur_popular_preamble_start_ms; 1.64 - double _cur_popular_preamble_time_ms; 1.65 - double _cur_popular_compute_rc_time_ms; 1.66 - double _cur_popular_evac_time_ms; 1.67 1.68 double _cur_CH_strong_roots_end_sec; 1.69 double _cur_CH_strong_roots_dur_ms; 1.70 @@ -173,10 +144,8 @@ 1.71 TruncatedSeq* _concurrent_mark_remark_times_ms; 1.72 TruncatedSeq* _concurrent_mark_cleanup_times_ms; 1.73 1.74 - NonPopSummary* _non_pop_summary; 1.75 - PopSummary* _pop_summary; 1.76 - NonPopAbandonedSummary* _non_pop_abandoned_summary; 1.77 - PopAbandonedSummary* _pop_abandoned_summary; 1.78 + Summary* _summary; 1.79 + AbandonedSummary* _abandoned_summary; 1.80 1.81 NumberSeq* _all_pause_times_ms; 1.82 NumberSeq* _all_full_gc_times_ms; 1.83 @@ -210,18 +179,6 @@ 1.84 double* _par_last_obj_copy_times_ms; 1.85 double* _par_last_termination_times_ms; 1.86 1.87 - // there are two pases during popular pauses, so we need to store 1.88 - // somewhere the results of the first pass 1.89 - double* _pop_par_last_update_rs_start_times_ms; 1.90 - double* _pop_par_last_update_rs_times_ms; 1.91 - double* _pop_par_last_update_rs_processed_buffers; 1.92 - double* _pop_par_last_scan_rs_start_times_ms; 1.93 - double* _pop_par_last_scan_rs_times_ms; 1.94 - double* _pop_par_last_closure_app_times_ms; 1.95 - 1.96 - double _pop_compute_rc_start; 1.97 - double _pop_evac_start; 1.98 - 1.99 // indicates that we are in young GC mode 1.100 bool _in_young_gc_mode; 1.101 1.102 @@ -634,8 +591,7 @@ 1.103 NumberSeq* calc_other_times_ms) const; 1.104 1.105 void print_summary (PauseSummary* stats) const; 1.106 - void print_abandoned_summary(PauseSummary* non_pop_summary, 1.107 - PauseSummary* pop_summary) const; 1.108 + void print_abandoned_summary(PauseSummary* summary) const; 1.109 1.110 void print_summary (int level, const char* str, NumberSeq* seq) const; 1.111 void print_summary_sd (int level, const char* str, NumberSeq* seq) const; 1.112 @@ -856,9 +812,6 @@ 1.113 virtual void record_collection_pause_start(double start_time_sec, 1.114 size_t start_used); 1.115 1.116 - virtual void record_popular_pause_preamble_start(); 1.117 - virtual void record_popular_pause_preamble_end(); 1.118 - 1.119 // Must currently be called while the world is stopped. 1.120 virtual void record_concurrent_mark_init_start(); 1.121 virtual void record_concurrent_mark_init_end(); 1.122 @@ -881,7 +834,7 @@ 1.123 virtual void record_collection_pause_end_CH_strong_roots(); 1.124 virtual void record_collection_pause_end_G1_strong_roots(); 1.125 1.126 - virtual void record_collection_pause_end(bool popular, bool abandoned); 1.127 + virtual void record_collection_pause_end(bool abandoned); 1.128 1.129 // Record the fact that a full collection occurred. 1.130 virtual void record_full_collection_start(); 1.131 @@ -990,12 +943,6 @@ 1.132 _cur_aux_times_ms[i] += ms; 1.133 } 1.134 1.135 - void record_pop_compute_rc_start(); 1.136 - void record_pop_compute_rc_end(); 1.137 - 1.138 - void record_pop_evac_start(); 1.139 - void record_pop_evac_end(); 1.140 - 1.141 // Record the fact that "bytes" bytes allocated in a region. 1.142 void record_before_bytes(size_t bytes); 1.143 void record_after_bytes(size_t bytes); 1.144 @@ -1008,9 +955,7 @@ 1.145 // Choose a new collection set. Marks the chosen regions as being 1.146 // "in_collection_set", and links them together. The head and number of 1.147 // the collection set are available via access methods. 1.148 - // If "pop_region" is non-NULL, it is a popular region that has already 1.149 - // been added to the collection set. 1.150 - virtual void choose_collection_set(HeapRegion* pop_region = NULL) = 0; 1.151 + virtual void choose_collection_set() = 0; 1.152 1.153 void clear_collection_set() { _collection_set = NULL; } 1.154 1.155 @@ -1018,9 +963,6 @@ 1.156 // current collection set. 1.157 HeapRegion* collection_set() { return _collection_set; } 1.158 1.159 - // Sets the collection set to the given single region. 1.160 - virtual void set_single_region_collection_set(HeapRegion* hr); 1.161 - 1.162 // The number of elements in the current collection set. 1.163 size_t collection_set_size() { return _collection_set_size; } 1.164 1.165 @@ -1203,7 +1145,7 @@ 1.166 // If the estimated is less then desirable, resize if possible. 1.167 void expand_if_possible(size_t numRegions); 1.168 1.169 - virtual void choose_collection_set(HeapRegion* pop_region = NULL); 1.170 + virtual void choose_collection_set(); 1.171 virtual void record_collection_pause_start(double start_time_sec, 1.172 size_t start_used); 1.173 virtual void record_concurrent_mark_cleanup_end(size_t freed_bytes, 1.174 @@ -1214,9 +1156,8 @@ 1.175 G1CollectorPolicy_BestRegionsFirst() { 1.176 _collectionSetChooser = new CollectionSetChooser(); 1.177 } 1.178 - void record_collection_pause_end(bool popular, bool abandoned); 1.179 + void record_collection_pause_end(bool abandoned); 1.180 bool should_do_collection_pause(size_t word_size); 1.181 - virtual void set_single_region_collection_set(HeapRegion* hr); 1.182 // This is not needed any more, after the CSet choosing code was 1.183 // changed to use the pause prediction work. But let's leave the 1.184 // hook in just in case.