--- a/hotspot/src/share/vm/gc/g1/g1CollectorPolicy.cpp Thu Sep 10 06:15:43 2015 +0200
+++ b/hotspot/src/share/vm/gc/g1/g1CollectorPolicy.cpp Fri Sep 11 10:02:35 2015 +0200
@@ -1869,7 +1869,7 @@
}
-void G1CollectorPolicy::finalize_cset(double target_pause_time_ms) {
+double G1CollectorPolicy::finalize_young_cset_part(double target_pause_time_ms) {
double young_start_time_sec = os::elapsedTime();
YoungList* young_list = _g1->young_list();
@@ -1881,7 +1881,6 @@
guarantee(_collection_set == NULL, "Precondition");
double base_time_ms = predict_base_elapsed_time_ms(_pending_cards);
- double predicted_pause_time_ms = base_time_ms;
double time_remaining_ms = MAX2(target_pause_time_ms - base_time_ms, 0.0);
ergo_verbose4(ErgoCSetConstruction | ErgoHigh,
@@ -1925,15 +1924,16 @@
_collection_set = _inc_cset_head;
_collection_set_bytes_used_before = _inc_cset_bytes_used_before;
time_remaining_ms = MAX2(time_remaining_ms - _inc_cset_predicted_elapsed_time_ms, 0.0);
- predicted_pause_time_ms += _inc_cset_predicted_elapsed_time_ms;
- ergo_verbose3(ErgoCSetConstruction | ErgoHigh,
+ ergo_verbose4(ErgoCSetConstruction | ErgoHigh,
"add young regions to CSet",
ergo_format_region("eden")
ergo_format_region("survivors")
- ergo_format_ms("predicted young region time"),
+ ergo_format_ms("predicted young region time")
+ ergo_format_ms("target pause time"),
eden_region_length, survivor_region_length,
- _inc_cset_predicted_elapsed_time_ms);
+ _inc_cset_predicted_elapsed_time_ms,
+ target_pause_time_ms);
// The number of recorded young regions is the incremental
// collection set's current size
@@ -1942,8 +1942,13 @@
double young_end_time_sec = os::elapsedTime();
phase_times()->record_young_cset_choice_time_ms((young_end_time_sec - young_start_time_sec) * 1000.0);
- // Set the start of the non-young choice time.
- double non_young_start_time_sec = young_end_time_sec;
+ return time_remaining_ms;
+}
+
+void G1CollectorPolicy::finalize_old_cset_part(double time_remaining_ms) {
+ double non_young_start_time_sec = os::elapsedTime();
+ double predicted_old_time_ms = 0.0;
+
if (!collector_state()->gcs_are_young()) {
CollectionSetChooser* cset_chooser = _collectionSetChooser;
@@ -2031,7 +2036,7 @@
// We will add this region to the CSet.
time_remaining_ms = MAX2(time_remaining_ms - predicted_time_ms, 0.0);
- predicted_pause_time_ms += predicted_time_ms;
+ predicted_old_time_ms += predicted_time_ms;
cset_chooser->remove_and_move_to_next(hr);
_g1->old_set_remove(hr);
add_old_region_to_cset(hr);
@@ -2066,16 +2071,13 @@
stop_incremental_cset_building();
- ergo_verbose5(ErgoCSetConstruction,
+ ergo_verbose3(ErgoCSetConstruction,
"finish choosing CSet",
- ergo_format_region("eden")
- ergo_format_region("survivors")
ergo_format_region("old")
- ergo_format_ms("predicted pause time")
- ergo_format_ms("target pause time"),
- eden_region_length, survivor_region_length,
+ ergo_format_ms("predicted old region time")
+ ergo_format_ms("time remaining"),
old_cset_region_length(),
- predicted_pause_time_ms, target_pause_time_ms);
+ predicted_old_time_ms, time_remaining_ms);
double non_young_end_time_sec = os::elapsedTime();
phase_times()->record_non_young_cset_choice_time_ms((non_young_end_time_sec - non_young_start_time_sec) * 1000.0);