RFR: Degenerating update-references phase

Roman Kennke rkennke at redhat.com
Wed May 3 17:26:54 UTC 2017


Am 03.05.2017 um 19:09 schrieb Aleksey Shipilev:
> On 05/03/2017 06:58 PM, Roman Kennke wrote:
>> This patch implements degenerating of update-refs phase in much the same
>> way (and the same reasons) as we did for concurrent marking: when we run
>> OOM during (concurrent) update-references, it seems likely that we're
>> close to finish, and thus, instead of starting from scratch and doing a
>> full-gc, finish updating refs under the final-update-refs-pause, and
>> reclaim memory. When we do this, we're pessimizing adaptive heuristics,
>> so hopefully next time we have more room and not run into this.
>>
>> http://cr.openjdk.java.net/~rkennke/degen-uprefs/webrev.00/
> In here:
>
>  492   void optimize_free_threshold() {
>  493     if (_successful_cm_cycles_in_a_row > ShenandoahHappyCyclesThreshold &&
>  494         _free_threshold > ShenandoahMinFreeThreshold) {
>
> ...it ignores _successful_uprefs_cycles_in_a_row, but called from
> record_uprefs_success()?
>
> Otherwise looks good to me.
Right.

http://cr.openjdk.java.net/~rkennke/degen-uprefs/webrev.02/
<http://cr.openjdk.java.net/%7Erkennke/degen-uprefs/webrev.02/>

Better?
Roman



More information about the shenandoah-dev mailing list