RFR: Merge draining SATB and task queues
Aleksey Shipilev
shade at redhat.com
Wed Nov 23 13:42:38 UTC 2016
On 11/23/2016 02:39 PM, Roman Kennke wrote:
> Am Mittwoch, den 23.11.2016, 14:34 +0100 schrieb Aleksey Shipilev:
>> On 11/23/2016 11:35 AM, Roman Kennke wrote:
>>>
>>> http://cr.openjdk.java.net/~rkennke/mergedrainsatb/webrev/
>>
>> Um. I don't understand why did we drop "Drain Queues", and do this:
>>
>> policy->record_phase_start(full_gc ?
>> ShenandoahCollectorPolicy::full_gc_mark_drain_queues :
>> ShenandoahCollectorPolicy::drain_satb);
>>
>> I would have expected we keep "Drain Queues", and drop "Drain SATB"
>> counters, because we still do queue work.
>
> Yeah, I was undecided about this.
>
> For concurrent marking, it's draining the SATB queues, and then process
> all oops that came out of the SATB queues, so it's all SATB post-
> processing, that's why I kept 'Drain SATB' and dropped 'Drain Queues'.
>
> However, for mark-compact, it has nothing to do with draining SATB.
> It's basically the normal marking queue after seeding the task queues
> with root oops. That's why I kept 'Full GC drain queues'.
>
> Do you want me to change it back to 'Drain Queues' for conc marking?
Ah, that explains it. I thought the queues still have leftover work
before final mark in concurrent mode. This deserves a comment in
SCM::shared_finish_mark_from_roots().
Looks good then.
Thanks,
-Aleksey
More information about the shenandoah-dev
mailing list