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