< prev index next >
src/hotspot/share/gc/g1/g1Policy.hpp
Print this page
rev 59792 : imported patch 8244603-sjohanss-review
*** 58,68 ****
static G1IHOPControl* create_ihop_control(const G1Predictions* predictor);
// Update the IHOP control with necessary statistics.
void update_ihop_prediction(double mutator_time_s,
size_t mutator_alloc_bytes,
- size_t young_gen_size,
bool this_gc_was_young_only);
void report_ihop_statistics();
G1Predictions _predictor;
G1Analytics* _analytics;
--- 58,67 ----
*** 74,83 ****
--- 73,83 ----
double _full_collection_start_sec;
jlong _collection_pause_end_millis;
+ uint _young_list_desired_length;
uint _young_list_target_length;
// The max number of regions we can extend the eden by while the GC
// locker is active. This should be >= _young_list_target_length;
uint _young_list_max_length;
*** 190,211 ****
// This set of variables tracks the collector efficiency, in order to
// determine whether we should initiate a new marking.
double _mark_remark_start_sec;
double _mark_cleanup_start_sec;
! // Updates the internal young gen maximum and target lengths. Returns the
! // unbounded young target length. If no rs_length parameter is passed,
! // predict the RS length using the prediction model, otherwise use the
! // given rs_length as the prediction.
! uint update_young_max_and_target_length();
! uint update_young_max_and_target_length(size_t rs_length);
!
! // Update the young list target length either by setting it to the
! // desired fixed value or by calculating it using G1's pause
! // prediction model.
! // Returns the unbounded young list target length.
! uint update_young_target_length(size_t rs_length);
// Calculate and return the minimum desired eden length based on the MMU target.
uint calculate_desired_eden_length_by_mmu() const;
// Calculate and return the desired eden length that can fit into the pause time goal.
--- 190,204 ----
// This set of variables tracks the collector efficiency, in order to
// determine whether we should initiate a new marking.
double _mark_remark_start_sec;
double _mark_cleanup_start_sec;
! // Updates the internal young gen maximum and target and desired lengths.
! // If no rs_length parameter is passed, predict the RS length using the
! // prediction model, otherwise use the given rs_length as the prediction.
! void update_young_length_bounds();
! void update_young_length_bounds(size_t rs_length);
// Calculate and return the minimum desired eden length based on the MMU target.
uint calculate_desired_eden_length_by_mmu() const;
// Calculate and return the desired eden length that can fit into the pause time goal.
*** 226,235 ****
--- 219,231 ----
// Calculate desired young length based on current situation without taking actually
// available free regions into account.
uint calculate_young_desired_length(size_t rs_length) const;
// Limit the given desired young length to available free regions.
uint calculate_young_target_length(uint desired_young_length) const;
+ // The GCLocker might cause us to need more regions than the target. Calculate
+ // the maximum number of regions to use in that case.
+ uint calculate_young_max_length(uint target_young_length) const;
void update_rs_length_prediction();
void update_rs_length_prediction(size_t prediction);
size_t predict_bytes_to_copy(HeapRegion* hr) const;
*** 370,379 ****
--- 366,376 ----
// marking thread has completed its work during the previous cycle,
// it will set in_initial_mark_gc() to so that the pause does
// the initial-mark work and start a marking cycle.
void decide_on_conc_mark_initiation();
+ uint young_list_desired_length() const { return _young_list_desired_length; }
size_t young_list_target_length() const { return _young_list_target_length; }
bool should_allocate_mutator_region() const;
bool can_expand_young_list() const;
*** 430,441 ****
_survivors_age_table.merge(age_table);
}
void print_age_table();
- void update_max_gc_locker_expansion();
-
void update_survivors_policy();
virtual bool force_upgrade_to_full() {
return false;
}
--- 427,436 ----
< prev index next >