--- old/src/share/vm/gc/g1/g1CollectorPolicy.cpp 2015-11-17 14:15:41.906938317 +0100 +++ new/src/share/vm/gc/g1/g1CollectorPolicy.cpp 2015-11-17 14:15:41.818935695 +0100 @@ -1253,20 +1253,11 @@ G1IHOPControl* G1CollectorPolicy::create_ihop_control() const { if (G1UseAdaptiveIHOP) { - // The target occupancy is the total heap occupancy we want to hit. First, we - // want to avoid eating into the reserve intended for young GC (to avoid unnecessary - // throughput loss). Additionally G1 is free to not clean out up to - // G1HeapWastePercent of heap, that space also cannot be used for allocation - // while marking. - size_t safe_heap_percentage = (size_t) (G1ReservePercent + G1HeapWastePercent); - size_t target_occupancy = 0; - - if (safe_heap_percentage < 100) { - target_occupancy = G1CollectedHeap::heap()->max_capacity() * (100.0 - safe_heap_percentage) / 100.0; - } return new G1AdaptiveIHOPControl(InitiatingHeapOccupancyPercent, - target_occupancy, - &_predictor); + G1CollectedHeap::heap()->max_capacity(), + &_predictor, + G1ReservePercent, + G1HeapWastePercent); } else { return new G1StaticIHOPControl(InitiatingHeapOccupancyPercent, G1CollectedHeap::heap()->max_capacity());