RFR: Adjust heuristics for running with update-refs phase
Aleksey Shipilev
shade at redhat.com
Tue May 2 17:35:58 UTC 2017
On 05/02/2017 07:31 PM, Roman Kennke wrote:
> When running with -XX:+ShenandoahUpdateRefsEarly, heuristics need to
> work differently because we're reclaiming the cset before marking, not
> after. With current settings, we're not using ~40% of the heap when
> running with update-refs. Updating refs in a separate cycle also breaks
> the funny ping-ponging of GC cycles we have seen early. We can thus skip
> over the extra handling for the expected cset-reclaimed-space, which
> also makes us use all of the heap.
>
> http://cr.openjdk.java.net/~rkennke/update-refs-heuristics/webrev.00/
> <http://cr.openjdk.java.net/%7Erkennke/update-refs-heuristics/webrev.00/>
>
> Notice that this means we now tend to run into full-gc during update
> refs phase. We need to solve this by implementing degeneration of
> update-refs just like we did with marking, i.e. if we run OOM during
> update-refs, stop the world and finish updating refs under the pause,
> instead of going into full-gc. This is not part of this patch though.
>
> We also need different thresholds when running with update-refs. Doesn't
> make much sense to fiddle with this before we have degenerated update-refs.
>
> Ok to push?
Makes sense. Looks good.
-Aleksey
More information about the shenandoah-dev
mailing list