< prev index next >

src/hotspot/share/gc/g1/g1Policy.hpp

Print this page
rev 57223 : imported patch 8225484-changes-to-survivor-calculation

@@ -83,11 +83,13 @@
   uint _young_list_max_length;
 
   // The survivor rate groups below must be initialized after the predictor because they
   // indirectly use it through the "this" object passed to their constructor.
   G1SurvRateGroup* _eden_surv_rate_group;
-  G1SurvRateGroup* _survivor_surv_rate_group;
+
+  size_t _survivor_used_bytes_at_start;
+  size_t _survivor_used_bytes_at_end;
 
   double _reserve_factor;
   // This will be set when the heap is expanded
   // for the first time during initialization.
   uint   _reserve_regions;

@@ -129,15 +131,10 @@
   void set_region_eden(HeapRegion* hr) {
     hr->set_eden();
     hr->install_surv_rate_group(_eden_surv_rate_group);
   }
 
-  void set_region_survivor(HeapRegion* hr) {
-    assert(hr->is_survivor(), "pre-condition");
-    hr->install_surv_rate_group(_survivor_surv_rate_group);
-  }
-
   void record_rs_length(size_t rs_length) {
     _rs_length = rs_length;
   }
 
   double predict_base_elapsed_time_ms(size_t num_pending_cards) const;

@@ -155,11 +152,10 @@
 
   void cset_regions_freed() {
     bool update = should_update_surv_rate_group_predictors();
 
     _eden_surv_rate_group->all_surviving_words_recorded(predictor(), update);
-    _survivor_surv_rate_group->all_surviving_words_recorded(predictor(), update);
   }
 
   G1MMUTracker* mmu_tracker() {
     return _mmu_tracker;
   }

@@ -403,10 +399,12 @@
   // The limit on the number of regions allocated for survivors.
   uint _max_survivor_regions;
 
   AgeTable _survivors_age_table;
 
+  size_t _surviving_survivor_words;
+  
   size_t desired_survivor_size(uint max_regions) const;
 
   // Fraction used when predicting how many optional regions to include in
   // the CSet. This fraction of the available time is used for optional regions,
   // the rest is used to add old regions to the normal CSet.

@@ -421,22 +419,18 @@
 
   uint max_survivor_regions() {
     return _max_survivor_regions;
   }
 
-  void note_start_adding_survivor_regions() {
-    _survivor_surv_rate_group->start_adding_regions();
-  }
-
-  void note_stop_adding_survivor_regions() {
-    _survivor_surv_rate_group->stop_adding_regions();
-  }
-
   void record_age_table(AgeTable* age_table) {
     _survivors_age_table.merge(age_table);
   }
 
+  void record_surviving_survivor_words(size_t words) {
+    _surviving_survivor_words += words;
+  }
+
   void print_age_table();
 
   void update_max_gc_locker_expansion();
 
   void update_survivors_policy();
< prev index next >