RFR (S/M): 8136678: Implement adaptive sizing algorithm for IHOP
Thomas Schatzl
thomas.schatzl at oracle.com
Tue Nov 17 12:39:53 UTC 2015
Hi all,
let me retract review for this change now. The adaptive IHOP control
is now dependent on external variables (in
G1AdaptiveIHOPControl::actual_target_threshold(), G1ReservePercent,
G1HeapWastePercent), and so the internal tests are brittle.
I need to find a solution for that before asking for further review.
Thanks,
Thomas
On Tue, 2015-11-17 at 10:24 +0100, Thomas Schatzl wrote:
> Hi Jon,
>
> thanks a lot for your comments, appreciated.
>
> On Fri, 2015-11-13 at 13:03 -0800, Jon Masamitsu wrote:
> > Thomas,
> >
> > http://cr.openjdk.java.net/~tschatzl/8136678/webrev/src/share/vm/gc/g1/g1IHOPControl.hpp.frames.html
> >
> > Can you add a comment describing what this is?
> >
> > 91 size_t _prev_unrestrained_young_size;
> >
> > Why "recalculate" instead of just "calculate"? "calculate" has the
> > virtual of
> > being a little shorter name.
>
> Fixed.
>
> > 95 // Updates _current_threshold according to internal state.
> > 96 void recalculate();
> >
> > This says that you want the target_occupancy to be at the maximum value
> > that will still allow young gen sizes as set with G1ReservePercen? That
> > seems
> > a bit aggressive to me since it is the value that will be used until
> > there is
> > enough data to create a better estimate. Maybe arbitrarily add an
> > extra 20%
> > to safe_heap_percentage?
> >
> > 1257 if (safe_heap_percentage < 100) {
> > 1258 target_occupancy = G1CollectedHeap::heap()->max_capacity() * (100.0
> > - safe_heap_percentage) / 100.0;
> > 1259 }
> >
> > http://cr.openjdk.java.net/~tschatzl/8136678/webrev/src/share/vm/gc/g1/g1IHOPControl.cpp.frames.html
>
> I fixed that by moving this calculation into the policy to make clear
> that this _target_occupancy is an internal value. I would have needed
> this refactoring anyway for JDK-8140777.
>
> (And it certainly looks better.)
>
> > Add a flag in place of the "2" just to make experimentation easier?
> >
> > 133 return (_marking_times_s.num() > 2) && (_allocation_rate_s.num() > 2);
> >
>
> Added.
>
> >
> >
> > Do you still want the comment at the end?
> >
> > 244 size_t const settled_ihop3 = 0; // target_size - (young_size +
> > alloc_amount2/alloc_time2 * marking_time2);
>
> Removed. Copy&paste error :)
>
> > Rest looks good.
> >
> > Jon
>
> New webrevs:
>
> http://cr.openjdk.java.net/~tschatzl/8136678/webrev.0_to_1/ (diff)
> http://cr.openjdk.java.net/~tschatzl/8136678/webrev.1/ (full)
>
> Thanks,
> Thomas
>
More information about the hotspot-gc-dev
mailing list