< prev index next >

src/hotspot/share/gc/g1/g1IHOPControl.cpp

Print this page
rev 60542 : [mq]: 8245511-rev.3

@@ -146,24 +146,13 @@
     return (size_t)(_initial_ihop_percent * _target_occupancy / 100.0);
   }
 }
 
 double G1AdaptiveIHOPControl::last_mutator_period_old_allocation_rate() const {
-  // The upper limit of the freed region count is the number of regions allocated
-  // since the last gc. When more humongous regions survived the current gc than
-  // survived the previous one, deduct the increment.
   assert(_last_allocation_time_s > 0, "This should not be called when the last GC is full");
-  size_t freed_humongous_bytes = _old_gen_alloc_tracker->_last_period_humongous_bytes;
-  size_t humongous_bytes_after_penultimate_gc = _old_gen_alloc_tracker->_humongous_bytes_after_penultimate_gc;
-  size_t humongous_bytes_after_last_gc = _old_gen_alloc_tracker->_humongous_bytes_after_last_gc;
-  size_t last_period_old_bytes = _old_gen_alloc_tracker->last_period_old_bytes();
 
-  if (freed_humongous_bytes > 0 && humongous_bytes_after_penultimate_gc < humongous_bytes_after_last_gc) {
-    freed_humongous_bytes -= humongous_bytes_after_last_gc - humongous_bytes_after_penultimate_gc;
-  }
-  assert(last_period_old_bytes >= freed_humongous_bytes, "Allocation rate cannot be negative");
-  return (last_period_old_bytes - freed_humongous_bytes) / _last_allocation_time_s;
+  return _old_gen_alloc_tracker->last_period_net_survived_old_bytes() / _last_allocation_time_s;
  }
 
 void G1AdaptiveIHOPControl::update_allocation_info(double allocation_time_s,
                                                    size_t additional_buffer_size) {
   G1IHOPControl::update_allocation_info(allocation_time_s, additional_buffer_size);
< prev index next >