RFR: Interleave partial GCs with concurrent GCs

Aleksey Shipilev shade at redhat.com
Thu Mar 30 19:45:37 UTC 2017


On 03/30/2017 09:44 PM, Roman Kennke wrote:
> Am 30.03.2017 um 21:22 schrieb Aleksey Shipilev:
>> On 03/30/2017 08:03 PM, Aleksey Shipilev wrote:
>>> On 03/30/2017 07:27 PM, Roman Kennke wrote:
>>>> Ok, the interleave part is misleading. It does not actually interleave
>>>> concurrent with partial GCs. It either does one or the other in each GC
>>>> phase.
>>>>
>>>> Also, we might need the matrix that is built by concurrent marking, to
>>>> select which regions need updating during update-refs. Better to leave
>>>> that code in. Which makes the patch fairly concise:
>>>>
>>>> http://cr.openjdk.java.net/~rkennke/partial-conc-gc/webrev.01
>>> OK.
>> This SEGVs for me. In my workload, the very first cycle is partial, but marking
>> bitmap is not available yet. This band-aids the issue, but I am not sure it
>> should be fixed like that:
>>   http://cr.openjdk.java.net/~shade/shenandoah/bandaid-first-partial.patch
> No it shouldn't :-)
> When there is no marking bitmap, it should happily fall back to
> size-based iteration.
> 
> The issue here is that we're encountering a humongous continuation, and
> marked_object_iterate() cannot handle it.
> 
> This modification puts an assert in marked_object_iterate() and skips
> humongous continuations. (They will be processed by the oop_iterate()
> call in the humongous start anyway).
> 
> http://cr.openjdk.java.net/~rkennke/partial-conc-gc/webrev.02/

OK!

-Aleksey



More information about the shenandoah-dev mailing list