RFR: Two small changes to generational partial collections...

Aleksey Shipilev shade at redhat.com
Mon Sep 11 19:06:39 UTC 2017


On 08/29/2017 03:35 PM, Aleksey Shipilev wrote:
> On 08/29/2017 03:25 PM, Christine Flood wrote:
>> Heuristics for partial gc included:
>> if (used < prev_used) {
>>       // Major collection must have happened, "used" data is unreliable,
>> wait for update.
>>       return false;
>>     }
>>
>> Except we weren't updating prev_used after full concurrent collections so
>> we would have long dry spells with no partial collections.
> 
> Hm, set_used_at_last_gc() is called from record_gc_end().
> 
> Does that mean we miss record_gc_end on update-refs path? Seems to me
> VM_ShenandoahInitUpdateRefs::doit() and VM_ShenandoahFinalUpdateRefs::doit() should have the calls
> to record_gc_start / record_gc_end, like other Shenandoah VM_Ops do.

You don't need to do this part after recent change:
  http://hg.openjdk.java.net/shenandoah/jdk10/hotspot/rev/230b89b8e0d6

Thanks,
-Aleksey




More information about the shenandoah-dev mailing list