OpenJDK / zgc / zgc
changeset 35197:dbc88f36cfd3
Merge
author | kbarrett |
---|---|
date | Sat, 19 Dec 2015 03:07:31 +0000 |
parents | d142222675dd c83940b346b2 |
children | 1365be812a7d |
files | |
diffstat | 5 files changed, 23 insertions(+), 13 deletions(-) [+] |
line wrap: on
line diff
--- a/hotspot/src/share/vm/gc/cms/concurrentMarkSweepGeneration.cpp Sat Dec 19 02:32:27 2015 +0100 +++ b/hotspot/src/share/vm/gc/cms/concurrentMarkSweepGeneration.cpp Sat Dec 19 03:07:31 2015 +0000 @@ -2730,7 +2730,7 @@ public: // Not MT-safe; so do not pass around these StackObj's // where they may be accessed by other threads. - jlong wallclock_millis() { + double wallclock_millis() { return TimeHelper::counter_to_millis(os::elapsed_counter() - _trace_time.start_time()); } };
--- a/hotspot/src/share/vm/gc/g1/g1CollectorPolicy.cpp Sat Dec 19 02:32:27 2015 +0100 +++ b/hotspot/src/share/vm/gc/g1/g1CollectorPolicy.cpp Sat Dec 19 03:07:31 2015 +0000 @@ -291,6 +291,10 @@ return _predictor.get_new_prediction(seq); } +size_t G1CollectorPolicy::get_new_size_prediction(TruncatedSeq const* seq) const { + return (size_t)get_new_prediction(seq); +} + void G1CollectorPolicy::initialize_alignments() { _space_alignment = HeapRegion::GrainBytes; size_t card_table_alignment = CardTableRS::ct_max_alignment_constraint(); @@ -477,7 +481,7 @@ // (100 + TargetPLABWastePct) represents the increase in expected bytes during // copying due to anticipated waste in the PLABs. double safety_factor = (100.0 / G1ConfidencePercent) * (100 + TargetPLABWastePct) / 100.0; - size_t expected_bytes_to_copy = safety_factor * bytes_to_copy; + size_t expected_bytes_to_copy = (size_t)(safety_factor * bytes_to_copy); if (expected_bytes_to_copy > free_bytes) { // end condition 3: out-of-space @@ -524,7 +528,7 @@ } uint G1CollectorPolicy::update_young_list_max_and_target_length() { - return update_young_list_max_and_target_length(get_new_prediction(_rs_lengths_seq)); + return update_young_list_max_and_target_length(get_new_size_prediction(_rs_lengths_seq)); } uint G1CollectorPolicy::update_young_list_max_and_target_length(size_t rs_lengths) { @@ -629,7 +633,7 @@ double target_pause_time_ms = _mmu_tracker->max_gc_time() * 1000.0; double survivor_regions_evac_time = predict_survivor_regions_evac_time(); - size_t pending_cards = (size_t) get_new_prediction(_pending_cards_seq); + size_t pending_cards = get_new_size_prediction(_pending_cards_seq); size_t adj_rs_lengths = rs_lengths + predict_rs_length_diff(); size_t scanned_cards = predict_young_card_num(adj_rs_lengths); double base_time_ms = @@ -732,7 +736,7 @@ } void G1CollectorPolicy::update_rs_lengths_prediction() { - update_rs_lengths_prediction(get_new_prediction(_rs_lengths_seq)); + update_rs_lengths_prediction(get_new_size_prediction(_rs_lengths_seq)); } void G1CollectorPolicy::update_rs_lengths_prediction(size_t prediction) { @@ -1345,7 +1349,7 @@ } size_t G1CollectorPolicy::predict_rs_length_diff() const { - return (size_t) get_new_prediction(_rs_length_diff_seq); + return get_new_size_prediction(_rs_length_diff_seq); } double G1CollectorPolicy::predict_alloc_rate_ms() const {
--- a/hotspot/src/share/vm/gc/g1/g1CollectorPolicy.hpp Sat Dec 19 02:32:27 2015 +0100 +++ b/hotspot/src/share/vm/gc/g1/g1CollectorPolicy.hpp Sat Dec 19 03:07:31 2015 +0000 @@ -179,6 +179,7 @@ G1Predictions _predictor; double get_new_prediction(TruncatedSeq const* seq) const; + size_t get_new_size_prediction(TruncatedSeq const* seq) const; // either equal to the number of parallel threads, if ParallelGCThreads // has been set, or 1 otherwise
--- a/hotspot/src/share/vm/gc/g1/g1IHOPControl.cpp Sat Dec 19 02:32:27 2015 +0100 +++ b/hotspot/src/share/vm/gc/g1/g1IHOPControl.cpp Sat Dec 19 03:07:31 2015 +0000 @@ -138,7 +138,7 @@ double safe_total_heap_percentage = MIN2((double)(_heap_reserve_percent + _heap_waste_percent), 100.0); - return MIN2( + return (size_t)MIN2( G1CollectedHeap::heap()->max_capacity() * (100.0 - safe_total_heap_percentage) / 100.0, _target_occupancy * (100.0 - _heap_waste_percent) / 100.0 ); @@ -153,10 +153,13 @@ if (have_enough_data_for_prediction()) { double pred_marking_time = _predictor->get_new_prediction(&_marking_times_s); double pred_promotion_rate = _predictor->get_new_prediction(&_allocation_rate_s); + size_t pred_promotion_size = (size_t)(pred_marking_time * pred_promotion_rate); size_t predicted_needed_bytes_during_marking = - (pred_marking_time * pred_promotion_rate + - _last_unrestrained_young_size); // In reality we would need the maximum size of the young gen during marking. This is a conservative estimate. + pred_promotion_size + + // In reality we would need the maximum size of the young gen during + // marking. This is a conservative estimate. + _last_unrestrained_young_size; size_t internal_threshold = actual_target_threshold(); size_t predicted_initiating_threshold = predicted_needed_bytes_during_marking < internal_threshold ? @@ -165,11 +168,13 @@ return predicted_initiating_threshold; } else { // Use the initial value. - return _initial_ihop_percent * _target_occupancy / 100.0; + return (size_t)(_initial_ihop_percent * _target_occupancy / 100.0); } } -void G1AdaptiveIHOPControl::update_allocation_info(double allocation_time_s, size_t allocated_bytes, size_t additional_buffer_size) { +void G1AdaptiveIHOPControl::update_allocation_info(double allocation_time_s, + size_t allocated_bytes, + size_t additional_buffer_size) { G1IHOPControl::update_allocation_info(allocation_time_s, allocated_bytes, additional_buffer_size); double allocation_rate = (double) allocated_bytes / allocation_time_s;
--- a/hotspot/src/share/vm/gc/shared/gcTraceSend.cpp Sat Dec 19 02:32:27 2015 +0100 +++ b/hotspot/src/share/vm/gc/shared/gcTraceSend.cpp Sat Dec 19 03:07:31 2015 +0000 @@ -278,7 +278,7 @@ evt.set_gcId(GCId::current()); evt.set_threshold(threshold); evt.set_targetOccupancy(target_occupancy); - evt.set_thresholdPercentage(target_occupancy > 0 ? threshold * 100.0 / target_occupancy : 0.0); + evt.set_thresholdPercentage(target_occupancy > 0 ? (threshold * 100 / target_occupancy) : 0); evt.set_currentOccupancy(current_occupancy); evt.set_lastAllocationSize(last_allocation_size); evt.set_lastAllocationDuration(last_allocation_duration); @@ -299,7 +299,7 @@ if (evt.should_commit()) { evt.set_gcId(GCId::current()); evt.set_threshold(threshold); - evt.set_thresholdPercentage(internal_target_occupancy > 0 ? threshold * 100.0 / internal_target_occupancy : 0.0); + evt.set_thresholdPercentage(internal_target_occupancy > 0 ? (threshold * 100 / internal_target_occupancy) : 0); evt.set_internalTargetOccupancy(internal_target_occupancy); evt.set_currentOccupancy(current_occupancy); evt.set_additionalBufferSize(additional_buffer_size);