RFR (S): Rebuild free set after update-refs, ignore cset in heuristics when update-refs are enabled

Roman Kennke roman at kennke.org
Fri Apr 21 15:51:37 UTC 2017


Am 21.04.2017 um 17:45 schrieb Aleksey Shipilev:
> Hi,
>
> This solves two obvious problems with update-refs.
>
> First, update-refs does not rebuild freeset, while actually recycling the
> regions and updating heap occupancy counters. This leads ShenandoahHeap and
> heuristics to believe there is free space, but then free set abruptly depletes,
> and runs us into full GC.
>
> Second, heuristics that do not expect update-refs think we will reclaim cset
> from the previous cycle, and thus overshooting the starting time, again, driving
> us to full GC.
>
> Both fixed here:
>   http://cr.openjdk.java.net/~shade/shenandoah/update-refs-heuristics/webrev.01/
>
> Testing: hotspot_gc_shenandoah, targeted benchmarks
>
> Thanks,
> -Aleksey
>
>
Duh. Sure!

However instead of ShenandoahUpdateRefsEarly, you should probably query
ShenandoahCollectorPolicy::update_refs_early() ? Heuristics like partial
need to have their own opinion...

Roman



More information about the shenandoah-dev mailing list